簡體   English   中英

在 matplotlib 上添加標簽和豎線(在 plot 區域之外)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM