我想使用matplotlib的条形图功能绘制以下形式的数据:
data = {'Room A':
{'Shelf 1':
{'Milk': 10,
'Water': 20},
'Shelf 2':
{'Sugar': 5,
'Honey': 6}
},
'Room B':
{'Shelf 1':
{'Wheat': 4,
'Corn': 7},
'Shelf 2':
{'Chicken': 2,
'Cow': 1}
}
}
Run Code Online (Sandbox Code Playgroud)
条形图应该看起来像这样.应从x轴上的标签可见条形图组.有没有办法用matplotlib做到这一点?
Matplotlib有一个函数,用于在图形坐标中写入文本(.figtext())
有没有办法做同样的但绘制线条?
特别是我的目标是画线以将y轴上的一些刻度组合在一起.
假设我正在看一个nxn网格,并且在每个轴上我都有标记,比如动物.但我也有兴趣研究这些动物的群体,小组等之间的关系.因此,例如,我可能有脊椎动物和无脊椎动物,在脊椎动物中我可能有哺乳动物和爬行动物等等.(如果重要的话,我对相关矩阵特别感兴趣,实际上是通过seaborn使用热图......)
我想在matplotlib中绘制它,但沿轴有层次标记.因此,使用上面的例子,我会有像狗,猫,马,蜥蜴,鳄鱼等标签,然后第一组通过马的狗将有一个哺乳动物的标签和第二组蜥蜴,鳄鱼等将有爬行动物,这两个一起会有更多的脊椎动物标签......
我该怎么做?
我正在使用seaborn 和matplotlib 绘制条形图。我想用文字和线条来注释情节。
这是我生成该图的策略(抱歉提供,plot_data但它相当大):
plt.figure()
ax = seaborn.barplot(x='cell_line', y='DeltaCt', data=plot_data, hue='time')
plt.title('Baseline: {}'.format(g))
plt.ylabel('DeltaCt')
plt.xlabel('')
trans = ax.get_xaxis_transform()
ax.annotate('Neonatal', xy=(0.4, -0.1), xycoords=trans)
plt.show()
Run Code Online (Sandbox Code Playgroud)