[英]Add labels and vertical line on matplotlib (outside plot area)
我有一个 pandas dataframe 类似于:
df = pd.DataFrame([['1/1/2020',0.1,0.3,'cat1','csv'],\
['1/1/2020',0.4,0.7,'cat1','excel'],\
['1/1/2020',1.7,2.3,'cat2','csv'],\
['2/1/2020',0,0.3,'cat2','csv'],\
['2/1/2020',0.4,0.5,'cat2','csv'],\
['2/1/2020',0.5,0.7,'cat1','csv'],\
['2/1/2020',1.1,1.3,'cat1','excel']],\
columns = ['date','start','end','cat','source'])
df 的每一行都包含要着色的值范围和颜色组(猫)。 我可以使用以下代码 plot 如下图: plt.figure(figsize=(10,3))
for i,r in df.iterrows():
plt.barh(r['date'], width=r['end']-r['start'],
left=r['start'], color='y' if r['cat']=='cat1' else 'g')
我的问题是,我想添加分区详细信息:
这个问题的答案可以分为两部分:
1. Plot 文本框外的 xy plot
props = dict(boxstyle='round', facecolor='wheat', alpha=1)
plt.text(0, .9, "textstr", fontsize=14, transform=plt.gcf().transFigure,verticalalignment='top', bbox=props)
可以根据您的目的手动调整 0 和 0.9 的值。
2.在xy上画一条竖线plot
plt.axvline(x=5,color='r', linewidth = 5)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.