代码之家  ›  专栏  ›  技术社区  ›  mlvljr

在不更改“rcParams”全局dict的情况下设置“axes.linewidth”

  •  20
  • mlvljr  · 技术社区  · 14 年前

    axes 没有一个 set_linewidth

    axes_style = {'linewidth':5}
    axes_rect = [0.1, 0.1, 0.9, 0.9]
    
    axes(axes_rect, **axes_style)
    

    rcParams['axes.linewidth'] = 5 # set the value globally
    
    ... # some code
    
    rcdefaults() # restore [global] defaults
    

    有没有一个简单/干净的方法(可能是一个可以设置的方法 x -以及 y

    3 回复  |  直到 14 年前
        1
  •  84
  •   Marcos Alex    11 年前

    正如评论中所解释的那样,上述答案不起作用。我建议用刺。

    import matplotlib.pyplot as plt
    
    fig = plt.figure()
    ax = fig.add_subplot(111)
    
    # you can change each line separately, like:
    #ax.spines['right'].set_linewidth(0.5)
    # to change all, just write:
    
    for axis in ['top','bottom','left','right']:
      ax.spines[axis].set_linewidth(0.5)
    
    plt.show()
    # see more about spines at:
    #http://matplotlib.org/api/spines_api.html
    #http://matplotlib.org/examples/pylab_examples/multiple_yaxis_with_spines.html
    
        2
  •  18
  •   kakty3    8 年前
    plt.setp(ax.spines.values(), linewidth=5)
    
        3
  •  7
  •   doug    14 年前

    是的,有一个简单干净的方法。

    呼叫' 阿克什林 '和' “从axis实例来看,这似乎是MPL文档中认可的技术。

    在任何情况下,它都很简单,可以对轴的外观进行细粒度的控制。

    例如,此代码将创建一个绘图,并将x轴涂成绿色,并将x轴的线宽从默认值“1”增加到值“4”;y轴为红色,y轴的线宽从“1”增加到“8”。

    from matplotlib import pyplot as PLT
    fig = PLT.figure()
    ax1 = fig.add_subplot(111)
    
    ax1.axhline(linewidth=4, color="g")        # inc. width of x-axis and color it green
    ax1.axvline(linewidth=4, color="r")        # inc. width of y-axis and color it red
    
    PLT.show()
    

    axhline/axvline函数接受额外的参数,这些参数应该允许您在美学上做任何您想做的事情,特别是~matplotlib.lines.Line2D属性中的任何一个都是有效的kwargs(例如,'alpha'、'linestyle'、capstyle、joinstyle)。

        4
  •  0
  •   Willem    5 年前

    例如:

    import matplotlib.pyplot as plt
    
    plt.figure(figsize = figsize)
    fig, ax = plt.subplots(figsize = figsize)
    for shape in sf.shapeRecords():
        x = [i[0] for i in shape.shape.points[:]]
        y = [i[1] for i in shape.shape.points[:]]
        ax.plot(x, y, 'k', linewidth=5)
    

    MPL.axes documentation (向下滚动至“其他参数”->**夸尔格)

    也许这个解决方案与其他地方提出的不同问题有关,但是我发现这个页面正在寻找解决我自己问题的方法,所以也许它可以帮助其他人寻找同样的问题。