【问题标题】:Add labels and vertical line on matplotlib (outside plot area)在 matplotlib 上添加标签和垂直线(绘图区域外)
【发布时间】:2021-03-13 00:13:45
【问题描述】:

我有一个类似于以下内容的 pandas 数据框:

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 的每一行都包含要着色的值范围和颜色组(猫)。我可以使用以下代码绘制如下图: 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')

我的问题是,我想添加分区详细信息:

【问题讨论】:

    标签: python-3.x matplotlib


    【解决方案1】:

    这个问题的答案可以分为两部分:

    1.在 xy 图之外绘制文本框

    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 图上画一条垂直线

    plt.axvline(x=5,color='r', linewidth = 5)
    

    【讨论】:

      猜你喜欢
      • 2018-05-18
      • 1970-01-01
      • 1970-01-01
      • 2018-05-25
      • 1970-01-01
      • 1970-01-01
      • 2021-09-05
      • 1970-01-01
      相关资源
      最近更新 更多