IPythonやJupyter Notebookで回転可能な3Dプロットを表示する
質問
(Mac OSX 10.10.5)
matplotlibのサイトから再現できるのは mplot3d 3次元散布図のサンプルコード scatter3d_demo.py を実行しましたが、プロットは静的な画像としてレンダリングされます。グラフをクリックして動的に回転させ、3Dプロットされたデータを表示することはできません。
(a) ターミナル内の ipython、(b) ターミナル内の ipython notebook、および (c) Anaconda ランチャーから起動した ipython notebook を使用して、サンプルコードを使用して静的な 3D プロットを達成しました。
私は、想定される知識として、いくつかの非常に基本的なステップを逃していると思います。
過去の学習では、プロットする際にグラフビューアを持つGUI Python Appを開いていました。(下記のコードの解決策2はこれを開きます。) おそらく、その表示方法に出力グラフをエクスポートするコードを知る必要があるのでは?(そう、下のコードブロックのコメントにあるように、インラインやノートブックなしで最初の行として%matplotlib (only) を使ってください)。
ipython notebookでの例です。
# 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 documentation, section 25.1perhaps the tkinter package ... を見ています。
tkinter パッケージ ("Tk interface") は、Tk GUI ツールキットへの Python 標準のインタフェースです。Tk と tkinter の両方は、Windows システムと同様に、ほとんどの Unix プラットフォームで利用可能です。
しかし、これはGUIプログラムの開発に関連しているので、これが関連するかどうかわからないと思います。 (正しくは、これはソリューションには必要ありませんでした)。
どのように解決するのですか?
使用方法
%matplotlib notebook
の代わりに
%matplotlib inline
の代わりに、IPythonノートブックに埋め込まれたインタラクティブな図を得るために、最近のバージョンのmatplotlib (1.4+) とIPython (3.0+) を必要とします。
関連
-
[解決済み] ブラウザでJupyter/ipythonノートブックのセル幅を広げるにはどうすればよいですか?
-
[解決済み] Matplotlibでプロットを表示するのではなく、画像ファイルに保存する。
-
[解決済み] IPythonノートブックmatplotlibプロットをインラインで行う方法
-
[解決済み】Jupyter Notebookのインラインプロットを大きくする方法は?重複
-
[解決済み】IPython/Jupyter notebookの作業ディレクトリを変更する。
-
[解決済み] IPythonノートブックでmatplotlibのウィンドウをインタラクティブに開くには?
-
[解決済み] ipython notebook で matplotlib のプロットに任意の直線を追加する
-
[解決済み] IPython notebookのループでプロットを動的に更新する方法(1セル内)
-
[解決済み] Ipython notebook / Jupyterで、Pandasがプロットしようとするグラフを表示しません。
-
[解決済み] マウス選択後のtmux出力からクリップボードにコピーするには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] MacでMonoDevelopを複数起動するにはどうしたらいいですか?
-
[解決済み] Mac OS XでのApache 2サイトファイル/フォルダの正しいオーナー/グループ/パーミッションは?
-
[解決済み] OS X で $PATH 変数の現在の値を見るにはどうしたらいいですか?
-
[解決済み] Visual Studio Codeで隠しファイルを表示する方法
-
[解決済み] パーミッションが拒否されました @ apply2files - /usr/local/lib/node_modules/expo-cli/node_modules/extglob/lib/.DS_Store?
-
[解決済み] macOS Sierraでネットワークリンクコンディショナーが動作しない。
-
[解決済み] Postgresのユーザが存在しない?
-
[解決済み] Mac OS Xでプログラムのシステムコールをトレースするには?
-
[解決済み] OSXでコマンドラインからAndroidStudioプロジェクトを開く
-
[解決済み] Macで$PATHからエントリを削除する方法