【问题标题】:How to hatch broken_barh on matplotlib python?如何在matplotlib python上孵化broken_barh?
【发布时间】:2017-06-22 17:43:32
【问题描述】:

我想在 matplotlib 的 broken_barh 中使用孵化。我想要的是情节中的不同颜色具有不同的孵化图案。我试图添加为字典但没有成功,有人知道正确的方法是什么吗? 这是来自 matplotlib 网站的示例代码。

""" 制作一个“破碎”的水平条形图,即一个有间隙的图 """

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.broken_barh([(110, 30), (150, 10)], (10, 9), facecolors='blue', hatch='o')
ax.broken_barh([(10, 50), (100, 20), (130, 10)], (20, 9),
               facecolors=('red', 'yellow', 'green'), hatch='//')
ax.set_ylim(5, 35)
ax.set_xlim(0, 200)
ax.set_xlabel('seconds since start')
ax.set_yticks([15, 25])
ax.set_yticklabels(['Bill', 'Jim'])
ax.grid(True)
ax.annotate('race interrupted', (61, 25),
            xytext=(0.8, 0.9), textcoords='axes fraction',
            arrowprops=dict(facecolor='black', shrink=0.05),
            fontsize=16,
            horizontalalignment='right', verticalalignment='top')

plt.show()

我想为不同的颜色设置不同的阴影,但这是不可能的:

如果有人能给我一个提示如何做到这一点,我将不胜感激?

【问题讨论】:

    标签: python matplotlib hatchstyle


    【解决方案1】:

    broken_barh 不允许设置不同的阴影。但由于断条只是许多单条,因此您可以绘制具有不同阴影的单条。

    import matplotlib.pyplot as plt
    
    def brokenhatchbar(xs, y, ax=None, **kw):
        if not ax: ax=plt.gca()
        hatches = kw.pop("hatch", [None]*len(xs))
        facecolors = kw.pop("facecolors", [None]*len(xs))
        edgecolors = kw.pop("edgecolors", [None]*len(xs))
        for i, x in enumerate(xs):
            ax.barh(bottom=y[0], width=x[1], height=y[1], left=x[0],
                    facecolor=facecolors[i], edgecolor=edgecolors[i], hatch=hatches[i])
    
    fig, ax = plt.subplots()
    brokenhatchbar([(110, 30), (150, 10)], (10, 9), facecolors=['blue','blue'], hatch=['o','////'])
    brokenhatchbar([(10, 50), (100, 20), (130, 10)], (20, 9),
                   facecolors=('red', 'yellow', 'green'), hatch=('//', 'o', '+'))
    ax.set_ylim(5, 35)
    ax.set_xlim(0, 200)
    ax.set_xlabel('seconds since start')
    
    ax.grid(True)
    
    plt.show()
    

    【讨论】:

    • 谢谢,这绝对可以解决我的问题。真的很感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 2013-08-25
    • 1970-01-01
    • 2015-08-29
    • 1970-01-01
    • 2019-08-03
    相关资源
    最近更新 更多