Matplotlib のプロットと可視化 いくつかのプロパティとエラー
属性
*) animateメソッドでinterval=0を指定すると、最後のフレームが直接出力されます。
*) 画像を消去する このメソッドが何であるかを正確に記載する オブジェクトをグラフィック領域で呼び出す を使用するか、または キャンバスオブジェクトは s?
これはどうにもこうにもうまくいかない
ソースリンク: https://codeday.me/bug/20170309/5150.html
def update_insert(i):
global ax,X
plt.cla()# the method to be called with the object of the drawing area, right?
# plt.close()# here again can be closed
# plt.clf()# clear the contents of the figure
X=np.random.randint(0,100,10)
ax.scatter(X,X)
plt.xticks([]),plt.yticks([])
return ax,X
*) 画像のエッジや画像間の余白を調整 plt.subplots.adjust (6引数)
画像の外形エッジを調整するには
plt.tight_layout()
この方法では、画像間の間隔をうまくコントロールすることができません。画像の外側の縁と画像間の空白の両方を制御したい場合は、次のコマンドを使用します。
plt.subplots_adjust(left=0.2, bottom=0.2, right=0.8, top=0.8, hspace=0.2, wspace=0.3)
*) subplot(111)のパラメータが111なので、真ん中を区切るカンマがない。
参考リンク:https://blog.csdn.net/S201402023/article/details/51536687
#Introduce the corresponding library functions
import matplotlib.pyplot as plt
from numpy import *
#plot
fig = plt.figure()
ax = fig.add_subplot(349)
ax.plot(x,y)
plt.show()
ここで、パラメータ 349 の意味は、キャンバスを 3 行 4 列に分割し、画像を左から右、上から下の 9 ブロックに描画することです
10番目のブロックはどうでしょうか。3410ではうまくいかず、別の方法(3,4,10)で使用することができます。
1つのキャンバスに複数のダイアグラムを表示したい場合、どのように対処するのですか?
import matplotlib.pyplot as plt
from numpy import *
fig = plt.figure()
ax = fig.add_subplot(2,1,1)
ax.plot(x,y)
ax = fig.add_subplot(2,2,3)
ax.plot(x,y)
plt.show()
エラー
*)c:\usersadministrator.sc-201605202132 ◇appdata ◇local ◇programs ◇python ◇36 ◇Lib ◇tkinter ◇init◇.py:1705: UserWarning: タイトなレイアウトが適用されていません。左右の余白を十分に取ることができないため、すべての軸の装飾を配置することができません。
axs=fig.add_subplot(111)
axs.set_xlim(0,7)
axs.set_ylim(0,5)
text= axs.text(0.02,0.90,'test',transform=axs.transAxes)
text.set_backgroundcolor('r')
text.set_position((0.9,.9))# cannot exceed 1, same as above
*)matplotlib.units.ConversionError.Conversionエラー。値を軸の単位に変換するのに失敗しました。['bubble_sort', 'bidirectional_bubble_sort'].
xticks=[d.__name__ for d in algorithm_list]
print(xticks)
axs.set_xticks(xticks)# can't because it's an array of strings, it should be numbers
#xticks
['bubble_sort', 'bidirectional_bubble_sort']
*)ValueError。複数の要素を持つ配列の真偽値は曖昧です。a.any() または a.all() を使ってください。
#wrong
spend_time=[1,2]
axs.set_yticks([spend_time])
#True
axs.set_yticks(spend_time)
*)axs[i].set_xticks([])の場合 TypeError: 'list' オブジェクトがコールされていません。 有能
参考リンク
https://stackoverflow.com/questions/46231439/problems-with-matplotlib-pyplot-xticks
(回答2参照)
理由を教えてください。 は、開始側ですでにX軸フラグが空に設定されているためです
for i in range(algorithm_num):
frames_names[algorithm_list[i]. __name__]=[]
# set the canvas by the way
axs.append(fig.add_subplot(121+i))
# axs[-1].set_xticks=([])# this has already been done here, comment this out
# axs[-1].set_yticks=([])
# by the way run the function now
frames_names[algorithm_list[i]. __name__]=algorithm_list[i](copy.deepcopy(original_data_object))
plt.subplots_adjust(left=0.05,right=0.95,bottom=0.1,top=0.90,wspace=0.1,hspace=0.2)
#Find the maximum frame, forget it, let's store all the frames in a dict, but the dict doesn't seem to add to it
frame_count={}
for i in range(algorithm_num):
frame_count['{}'.format(algorithm_list[i])]=str(len(frames_names[algorithm_list[i]. __name__]))
def animate(fi):
bars=[]
for i in range(algorithm_num):
if len(frames_names[algorithm_list[i]. __name__])>fi:
axs[i].cla()
axs[i].set_xticks([])
axs[i].set_yticks([])
axs[i].set_title(str(algorithm_list[i]. __name__))
bars+=axs[i].bar(list(range(Data.data_count)),
[d.value for d in frames_names[algorithm_list[i]. __name__][fi]],
1,
color=[d.color for d in frames_names[algorithm_list[i]. __name__][fi]],
).get_children()
return bars
*) funcAnimation() のフラグは、間違った形式でフレーム関数に追加の引数を渡します TypeError: update_insert() は 2 つの位置引数を取りますが、10 個が与えられました
正しい形式です。
animation=animation.FuncAnimation(plt.fig,update_insert,init_func=None,repeat=False,frames=np.range(0,6 ),interval=2000,fargs=( collection))
def update_insert(i,*collection):
global ax,X
print(collection)
---snip--
*) scatter()のパラメータが不規則なために起こるエラー
参考リンク:https://matplotlib.org/3.1.0/api/_as_gen/matplotlib.pyplot.scatter.html?highlight=scatter#matplotlib.pyplot.scatter
マーカーの色。使用可能な値。
- モノクロのフォーマット文字列。
- 長さnの一連の色指定。
- を使用します。 cmap と ノルム 色にマッピングされたn個の数値の列。
- 2次元配列で、行はRGBまたはRGBAです。
なお c は、カラーマップされる値の配列と区別がつかないので、単一の数値RGBまたはRGBA配列であってはならない。すべてのポイントに同じ RGB または RGBA 値を指定するには、1 行の 2 次元配列を使用します。そうでない場合は,サイズに応じた値 x と y にマッチする場合は、値の一致が優先されます。
のデフォルトは
None
. この場合、マーカの色は
color
は、その
facecolor
または
facecolors
. 指定がない場合、または
None
のタグカラーが指定された場合、タグカラーは
Axes
current"シェイプの次の色が、"カラーサイクル"を決定し、塗りつぶします。このサイクルのデフォルトは
rcParams["axes.prop_cycle"]
.
ax.scatter(X1,X1,c=b)
ax.scatter(X2,X2,c=b,s=50)
ax.scatter(X1,X1,c=g)
はエラーを報告します。
(sort) λ python matplotlib_learn.py
[1, 2, 3, 4, 5]
Traceback (most recent call last):
File "C:\Users\Administrator.SC-201605202132\Envs\sort\lib\site-packages\matplotlib\cbook__init__.py", line 216, in process
func(*args, **kwargs)
File "C:\Users\Administrator.SC-201605202132\Envs\sort\lib\site-packages\matplotlib\animation.py", line 953, in _start
self._init_draw()
File "C:\Users\Administrator.SC-201605202132\Envs\sort\lib\site-packages\matplotlib\animation.py", line 1732, in _init_draw
self._draw_frame(next(self.new_frame_seq())))
File "C:\Users\Administrator.SC-201605202132\Envs\sort\lib\site-packages\matplotlib\animation.py", line 1755, in _draw_frame
self._drawn_artists = self._func(framedata, *self._args)
File "matplotlib_learn.py", line 184, in update_insert
ax.scatter(X2,X2,c=b,s=50)
File "C:\Users\Administrator.SC-201605202132\Envs\sort\lib\site-packages\matplotlib\__init__.py", line 1589, in inner
return func(ax, *map(sanitize_sequence, args), **kwargs)
File "C:\Users\Administrator.SC-201605202132\Envs\sort\lib\site-packages\matplotlib\axes\_axes.py", line 4446, in scatter
get_next_color_func=self._get_patches_for_fill.get_next_color)
File "C:\Users\Administrator.SC-201605202132\Envs\sort\lib\site-packages\matplotlib\axes\_axes.py", line 4257, in _parse_ scatter_color_args
n_elem = c_array.shape[0]
IndexError: tuple index out of range
*)ValueError: shape mismatch: object cannot be broadcast to a single shapeError.
渡された2つのパラメータが一対一に対応していないことが原因かもしれません。あるパラメータのデータを別のパラメータのデータで使用すると長さの関係で使用できないのと同じです。例えば、グラフを描画する場合
bars+=ax.bar(list(range(0,Data.data_count)),# I made a mistake when creating the data, here it's 16 and below it's 17
[d.value for d in frames[fi]],
1,
color=[d.color for d in frames[fi]]
).get_children()
*) クラス内の変数名エラーのようなエラーは、ああ、ああ、どこか間違って書かれているようだ、と催促しない
def set_color(self,ragb=None):# wrong here too
if not ragb:# This is also wrong
rgba=(0,#but this one is so unprompted
1-self.value/(self.data_count*2),
self.value/(self.data_count*2)+0.5,
1)
self.color=ragb
---snip--
d=Data(2)
print(d.color)
#output
(sort) λ python Visualization_bubble_sort.py
None
関連
-
unsigned' の前に期待される一次式 Solution
-
RuntimeWarning: double_scalars で無効な値が発生しました precision.append(tp[i] * 1.0 / (tp[i])
-
スキャナは、入力を待たずにエラーを報告します java.util.NoSuchElementException: 行が見つかりません
-
DataTableプラグインエラーです。Uncaught TypeError: 未定義のプロパティ 'style' を読み取ることができません。
-
Pythonではbreak文とcontinue文はifとしか使えないのでしょうか?
-
中に内部エラーが発生しました。「Javaツーリングの初期化」中に内部エラーが発生しました。
-
Uncaught TypeError: box1.appendChild は関数ではありません。
-
ternsflow AttributeError: __enter__
-
eclipseでプロジェクトを追加する すでにワークスペースに存在するため、インポートできないプロジェクトがある
-
C#のAssyInfo.csファイル 詳細説明
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
pandas Tutorial [4] データフレームフィルタリングデータ !
-
デバッグアサーションに失敗しました
-
error MSB3073: 変更された場所
-
hibernate の遅延ロード例外分析: ロールのコレクションの遅延初期化に失敗しました。
-
plot.new() のエラー : Rstudio での図形の余白が大きすぎる解決法
-
Android Studio が GIT をコミットするとき、このリポジトリでは別の git プロセスが実行されているようです(例:エディタを開いている)。
-
AssertionError [ERR_ASSERTION]: タスク関数を指定しなければならない、gulpのバージョンが一致しない
-
Mac の node-sass のインストールに失敗する "v8::String::Utf8Value" 。
-
unity build はエラーを報告します。 名前 'XXX' は現在のコンテキストに存在しません。
-
numpy.concatenate merge matrix エラー ValueError: すべての入力配列は同じ次元数でなければなりません。