我创建了两个具有不同数据大小的图形。因此,图2的y轴比另一个的y轴更伸展(图1),结果,图2的宽度更小。 如何将两个数字缩放为相等大小?
我用于图1的代码如下:
df.index = pd.to_datetime(df.index, format='%d-%m-%y')
fig=plt.imshow(df, cmap='YlOrBr', interpolation='nearest',
vmin=0, vmax=12)
l1 = pd.to_datetime(df.index).month
l2 = pd.to_datetime(df.columns).hour
x = pd.Series(l2).drop_duplicates()
y = pd.Series(l1).drop_duplicates()
plt.xticks(x.index,('00:00', '01:00', '02:00', '03:00', '04:00',
'05:00', '06:00', '07:00', '08:00', '09:00', '10:00', '11:00', '12:00',
'13:00', '14:00', '15:00', '16:00', '17:00', '18:00', '19:00', '20:00',
'21:00', '22:00', '23:00'), rotation=90)
plt.yticks(y.index,('', 'Mar `18 ', 'Feb `18', 'Jan `18', 'Dec `17',
'Nov `17'))
plt.colorbar()
plt.xlabel("Time (UTC)")
plt.ylabel("Date")
plt.title("title")
plt.savefig('fig.svg', dpi=1200)
plt.show()
我用于图2的代码如下:
df.index = pd.to_datetime(df.index, format='%d-%m-%y')
fig=plt.imshow(df, cmap='YlOrBr', interpolation='nearest',
vmin=0, vmax=12)
l11 = pd.to_datetime(df.index).month
l12 = pd.to_datetime(df.columns).hour
x = pd.Series(l12).drop_duplicates()
y = pd.Series(l11).drop_duplicates()
plt.xticks(x.index,('00:00', '01:00', '02:00', '03:00', '04:00',
'05:00', '06:00', '07:00', '08:00', '09:00', '10:00', '11:00', '12:00',
'13:00', '14:00', '15:00', '16:00', '17:00', '18:00', '19:00', '20:00',
'21:00', '22:00', '23:00'), rotation=90)
plt.yticks(y.index,('', 'Oct `18 ', 'Sep `18', 'Aug `18', 'Jul `18',
'Jun `18', 'May `18', 'Apr `18'))
plt.colorbar()
plt.xlabel("Time (UTC)")
plt.ylabel("Date")
plt.title("title")
plt.savefig('df.svg', dpi=1200)
plt.show()
答案 0 :(得分:0)
使用matplotlib的面向对象语法,可以在图形初始化时设置图形大小:
fig = plt.figure(0, figsize=(10, 8))
ax = fig.subplots(nrow=1, ncols=1)
ax.imshow(df, cmap='YlOrBr', interpolation='nearest', vmin=0, vmax=12)
某些命令的名称在面向对象的语法中略有不同。 plt.xticks
变为ax.set_xticks
和ax.set_xticklabels
。 plt.xlabel
成为ax.set_xlabel