Python 2.7 将颜色条添加到calmap绘图
这是我在这里的第一篇帖子 我正在使用calmap绘制漂亮的日历图来分析一些数据。日历图使用彩色地图显示日期之间的对比度。我遇到的问题是,calmap没有提供友好的工具来显示与日历绘图关联的颜色栏。我想知道你们当中是否有人能解决这个问题。理想情况是为整个图形设置颜色条,而不是仅为一个轴设置颜色条 calmap的文件: calmap绘图示例Python 2.7 将颜色条添加到calmap绘图,python-2.7,matplotlib,plot,Python 2.7,Matplotlib,Plot,这是我在这里的第一篇帖子 我正在使用calmap绘制漂亮的日历图来分析一些数据。日历图使用彩色地图显示日期之间的对比度。我遇到的问题是,calmap没有提供友好的工具来显示与日历绘图关联的颜色栏。我想知道你们当中是否有人能解决这个问题。理想情况是为整个图形设置颜色条,而不是仅为一个轴设置颜色条 calmap的文件: calmap绘图示例 在这里深入研究calmap代码,我理解这一点 calendarplot为每个子批次调用几个yearplot(在您的情况下为两次) yearplot首先创建一个
在这里深入研究calmap代码,我理解这一点
- calendarplot为每个子批次调用几个yearplot(在您的情况下为两次)
- yearplot首先创建一个带有背景的ax.pcolormesh,然后再创建一个带有实际数据的ax.pcolormesh,以及一系列其他内容
fig = plt.figure(figsize=(20,8))
ax = fig.add_subplot(111)
cax = calmap.yearplot(df, year=2014, ax=ax, cmap='YlGn')
fig.colorbar(cax.get_children()[1], ax=cax, orientation='horizontal')
将@kidpixo answer和@bogatron放在一起,我准备了一个独立的示例,它“做了显而易见的事情”,在calmap的右侧创建了一个颜色条,并与它的高度相匹配
将熊猫作为pd导入
将numpy作为np导入
导入calmap#pip安装calmap
将matplotlib.pyplot作为plt导入
从mpl_toolkits.axes_grid1导入使_axes_可定位
%matplotlib内联
df=pd.DataFrame(data=np.random.randn(500,1)
,索引=pd.日期范围(开始时间=2014-01-01 00:00:00',频率=1D',周期=500)
,列=['data'])
图=plt.图(图尺寸=(20,8))
ax=图添加_子批次(111)
cax=calmap.yearplot(df.data,year=2014,ax=ax,cmap='YlGn')
#fig.colorbar(cax.get_children()[1],ax=cax,orientation='horizontal')
分隔器=使轴可定位(cax)
lcax=分隔器。附加_轴(“右”,size=“2%”,pad=0.5)
图颜色条(cax.get_children()[1],cax=lcax)
它工作得很好。感谢您提供简单、干净的解决方案
ax[0].get_children()
[<matplotlib.collections.QuadMesh at 0x11ebd9e10>,
<matplotlib.collections.QuadMesh at 0x11ebe9210>, <- that's the one we need!
<matplotlib.spines.Spine at 0x11e85a910>,
<matplotlib.spines.Spine at 0x11e865250>,
<matplotlib.spines.Spine at 0x11e85ad10>,
<matplotlib.spines.Spine at 0x11e865490>,
<matplotlib.axis.XAxis at 0x11e85a810>,
<matplotlib.axis.YAxis at 0x11e74ba90>,
<matplotlib.text.Text at 0x11e951dd0>,
<matplotlib.text.Text at 0x11e951e50>,
<matplotlib.text.Text at 0x11e951ed0>,
<matplotlib.patches.Rectangle at 0x11e951f10>]
fig,ax=calmap.calendarplot(df['data'],
fillcolor='grey', linewidth=0,cmap='RdYlGn',
fig_kws=dict(figsize=(17,8)))
fig.colorbar(ax[0].get_children()[1], ax=ax.ravel().tolist())
fig = plt.figure(figsize=(20,8))
ax = fig.add_subplot(111)
cax = calmap.yearplot(df, year=2014, ax=ax, cmap='YlGn')
fig.colorbar(cax.get_children()[1], ax=cax, orientation='horizontal')