質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

17759閲覧

pythonで、3次元の回転させられる図のプロット

kasi

総合スコア6

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/03/27 05:59

編集2022/01/12 10:55

jupyternotebook上で3次元の散布図のプロットをしています。

%matplotlib inlineだと図の回転ができないため、
%matplotlib notebookにして図をプロットしていました。

途中までは回転できる3次元の散布図がプロットされていたのですが、
まれに%matplotlib notebookでは図がプロットされなくなってしまうことがあります。
%matplotlib inlineにすると、回転できない3次元の散布図はしっかりとプロットされます。

原因として、何が考えられますか?
なかなか同じ症状の人がいないため、わかりません。
よろしくお願いいたします。

------以下、サンプルコードです------

from sklearn import decomposition
from sklearn.decomposition import PCA
pca3 = decomposition.PCA(n_components=3,random_state=1)
X3 = pca3.fit_transform(X)

%matplotlib inline
(この部分を%matplotlib notebookにすると図が表示されません。)

from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure(figsize=(6,4))
ax = Axes3D(fig)
ax.scatter3D(X3[:,0],X3[:,1],X3[:,2] ,c=Y,cmap="bwr")
ax.set_xlabel('PC1')
ax.set_ylabel('PC2')
ax.set_zlabel('PC3')
plt.show()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tachikoma

2018/03/27 06:04

動作を確認できるサンプルコードがあれば質問に追記してください。
tachikoma

2018/03/27 06:56

%matploblib notebookで初回のみ表示されないことがある程度でした。質問者さんの場合は何度実行しても表示されないのでしょうか?
kasi

2018/03/27 07:06

そうなんです。何度やっても、figureの枠だけ一瞬表示されるのですが、すぐ消えてしまいます。
kasi

2018/03/27 07:08

データも含めたものを作成していただき、ありがとうございます。自分のデータ自体に何か問題があるのでしょうか?
tachikoma

2018/03/27 07:13

データの問題じゃないと思います。私の環境でも最初は同じ症状が出てました。カーネルをリスタートさせると初回実行時がうまく行かないのですが、2回目からは表示された感じです。
tachikoma

2018/03/27 07:15

あまり再現性がよくない上に思い当たる節がないので、私じゃすぐには解決策をご提示できないです。もう少しまってみてください。
mkgrei

2018/03/27 07:17

メモリが足りない、なども考えられますので、tachikomaさんのサンプルコードを実行してみてはいかがですか。
kasi

2018/03/27 07:23

ありがとうございます。tachikomaさんのコードを実行した所、%matplotlib notebookで回転する図をプロットすることができました。
kasi

2018/03/27 07:32

元のデータではやはり%matplotlib inlineでしか図をプロットすることができません。よろしくお願いいたします。
mkgrei

2018/03/27 07:34

プロットしようとしてるデータのサイズはどうなっていますか?
kasi

2018/03/27 07:47

データのサイズは80KBになっています。
mkgrei

2018/03/27 07:58

例えば、元のデータを4分の1にしてもプロットできませんか?
guest

回答1

0

データを含めたデバッグ用。
(回答ではありません。)

python

1%matplotlib notebook 2import matplotlib.pyplot as plt 3from sklearn import datasets 4from sklearn import decomposition 5from sklearn.decomposition import PCA 6data = datasets.load_iris() 7X = data.data 8Y = data.target 9pca3 = decomposition.PCA(n_components=3,random_state=1) 10X3 = pca3.fit_transform(X) 11 12# (この部分を%matplotlib notebookにすると図が表示されません。) 13 14from mpl_toolkits.mplot3d import Axes3D 15fig = plt.figure(figsize=(6,4)) 16ax = Axes3D(fig) 17ax.scatter3D(X3[:,0],X3[:,1],X3[:,2], c=Y, cmap="bwr") 18ax.set_xlabel('PC1') 19ax.set_ylabel('PC2') 20ax.set_zlabel('PC3') 21plt.show()

イメージ説明

投稿2018/03/27 06:58

tachikoma

総合スコア3601

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問