Setting `axes.linewidth` without changing the `rcParams` global dict

后端 未结 4 2039
有刺的猬
有刺的猬 2020-12-05 07:02

So, it seems one cannot do the following (it raises an error, since axes does not have a set_linewidth method):

axes_style = {\'lin         


        
4条回答
  •  难免孤独
    2020-12-05 07:13

    Yes, there's an easy and clean way to do this.

    Calling 'axhline' and 'axvline' from an axis instance appears to be the technique endorsed in the MPL Documentation.

    In any event, it is simple and gives you fine-grained control over the appearance of the axes.

    So for instance, this code will create a plot and color the x-axis green and increase the line width of the x-axis from a default value of "1" to a value of "4"; the y-axis is colored red and the line width of the y-axis is increased from "1" to "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()
    

    The axhline/axvline function accepts additional arguments which ought to allow you do any pretty much whatever you want aesthetically, in particular any of the ~matplotlib.lines.Line2D properties are valid kwargs (e.g., 'alpha', 'linestyle', capstyle, joinstyle).

提交回复
热议问题