(Mac OS X 10.10.5)
matplotlib Web サイトmplot3dから3D 散布図scatter3d_demo.pyのサンプル コードを再現できますが、プロットは静的な画像としてレンダリングされます。グラフをクリックして動的に回転させて、3D プロットされたデータを表示することができません。
サンプル コードを使用して静的 3D プロットを作成しました。(a) ターミナル内から ipython を使用し、(b) ターミナル内から ipython ノートブックを使用し、(c) Anaconda ランチャーから起動した ipython ノートブックを使用します。
想定される知識として、非常に基本的なステップが欠けていると思います。
過去の学習では、プロットはグラフ ビューアーを備えた GUI Python アプリを開きました。(以下に示すコードの解決策 2 でこれが開きます。)おそらく、出力グラフをその表示方法にエクスポートするためのコードを知る必要がありますか? (はい、以下のコード ブロックのコメントに示されているように、インラインまたはノートブックのない最初の行として %matplotlib (のみ) を使用します。)
ipythonノートブックの例として:
# These lines are comments
# Initial setup from an online python notebook tutorial is below.
# Note the first line "%matplotlib inline" this is how the tutorial has it.
# Two solutions 1. use: "%matplotlib notebook" graphs appear dynamic in the notebook.
# 2. use: "%matplotlib" (only) graphs appear dynamic in separate window.
# ( 2. is the best solution for detailed graphs/plots. )
%matplotlib inline
import pandas as pd
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
pd.set_option('html',False)
pd.set_option('max_columns',30)
pd.set_option('max_rows',10)
# What follows is a copy of the 3D plot example code.
# Data is randomly generated so there is no external data import.
def randrange(n, vmin, vmax):
return (vmax-vmin)*np.random.rand(n) + vmin
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
n = 100
for c, m, zl, zh in [('r', 'o', -60, -25), ('b', '^', -30, -5)]:
xs = randrange(n, 23, 50)
ys = randrange(n, 0, 100)
zs = randrange(n, zl, zh)
ax.scatter(xs, ys, zs, c=c, marker=m)
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()
誰かが私が欠けているものを特定できますか?
Python 3.3.6 のドキュメントを見ると、セクション 25.1 おそらく tkinter パッケージ ...
tkinter パッケージ (「Tk インターフェース」) は、Tk GUI ツールキットに対する標準の Python インターフェースです。Tk と tkinter はどちらも、ほとんどの Unix プラットフォームと Windows システムで利用できます。
これはGUIプログラムの開発に関連していると思いますが、これが関連しているかどうかはわかりません。(正解、これはソリューションには必要ありませんでした。)