matplotlibで使用されているさまざまな方法で迷子になっています。
側面にカラーバー、x軸に日時を含む色分けされた散布図を作成したいと思います。
しかしax
、自分の定義方法に応じて、さまざまなエラーが発生します。以下は私のコードのコアです:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
import matplotlib.cm as cm
import matplotlib.dates as mdates
#.....loading files etc.
norm = mcolors.Normalize(vmin=0,vmax=1000)
timerange = pd.date_range(start='2015-01-01', end='2016-01-01', freq='30D')
### PLOTTING
fig = plt.figure(figsize=(6.,5))
ax = fig.add_subplot(111)
for Af in Afiles:
for index, row in Af.iterrows():
time = pd.to_datetime(row['date'], format="%Y-%m-%d")
plt.scatter(time, row['A'], c=row['z'], norm=norm, cmap=colormap,edgecolor='k', lw=0.8, s=80)
plt.xticks(timerange, rotation=90)
ax.xaxis.set_major_formatter(mdates.DateFormatter("%d/%m/%Y"))
plt.xlabel('Time', fontsize=11, color='k')
clb = fig.colorbar(ax)
clb.ax.set_title('Value', y=-0.125, fontsize=11)
clb.ax.invert_yaxis()
fig.tight_layout()
これは生成します AttributeError: 'AxesSubplot' object has no attribute 'autoscale_None'
しかし、ax
色分けを機能させるために散布図として自分を指定すると、軸フォーマッタで問題が発生します。代わりに書き込むと、がax = plt.scatter
生成されAttributeError: 'PathCollection' object has no attribute 'xaxis'
ます。
カラーバーとフォーマットされた軸ティックの両方を使用するにはどうすればよいですか?
散布図とは呼ばないでくださいax
。(これにより、既存の軸が上書きされますax
。)
カラーバーは、最初の引数としてScalarMappable(散布図など)を想定しています。スキャッターはすべて正規化されているため、ループから使用できます。
norm = plt.Normalize(...)
for bla in blubb:
scatter = plt.scatter(..., norm=norm)
次に、
clb = fig.colorbar(scatter)
残りは同じままである必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加