【问题标题】:hatched rectangle patches without edges in matplotlibmatplotlib中没有边缘的阴影矩形补丁
【发布时间】:2013-08-26 10:01:23
【问题描述】:

当尝试将带有阴影图案的矩形补丁添加到绘图时,似乎不可能在同时指定阴影值时将关键字参数 edgecolor 设置为“无”。 换句话说,我正在尝试添加一个没有边缘但带有图案填充的阴影矩形。这似乎不起作用。仅当我还允许在矩形补丁周围绘制边缘时,才会显示该模式。

对如何实现所需行为有任何帮助吗?

【问题讨论】:

    标签: matplotlib patch hatchstyle


    【解决方案1】:

    您应该使用linewidth 参数,该参数必须设置为零。

    示例(基于your other question's answer):

    import matplotlib.pyplot as plt
    import matplotlib.patches as patches
    import numpy as np
    
    fig = plt.figure()
    ax = fig.add_subplot(111)
    
    # generate some data:
    x,y = np.meshgrid(np.linspace(0,1),np.linspace(0,1))
    z = np.ma.masked_array(x**2-y**2,mask=y>-x+1)
    
    # plot your masked array
    ax.contourf(z)
    
    # plot a patch
    p = patches.Rectangle((20,20), 20, 20, linewidth=0, fill=None, hatch='///')
    ax.add_patch(p)
    plt.show()
    

    你会得到这个图像:

    【讨论】:

    • 可以在不增加边框大小的情况下控制影线效果的线宽吗?
    • 参数linewidth 只控制边框的宽度。根据this answer中的cmets,无法控制影线效果的线宽。
    • @jkokorian 和其他到达这里的人:这里有一个通过 rcParams 控制阴影效果线宽的有效解决方案:stackoverflow.com/a/56675011/13917918
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多