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

使用matplotlib更改地物大小时缩放图例框边框、虚线和虚线

  •  4
  • janneb  · 技术社区  · 14 年前

    我遇到的问题是,由于图形非常小,我可以缩放字体大小、轴大小、线宽等,但我无法理解的是如何缩放虚线或虚线,以及图例边框框的厚度。对于一个简化且有些夸张的示例,请考虑

    
    #!/usr/bin/python
    
    small = True
    
    
    from matplotlib import use
    use('pdf')
    
    from matplotlib import rc
    rc('ps', usedistiller='xpdf')
    rc('text', usetex=True)
    
    if small:
        figsize = (1.0, 0.5)
        rc('font', size=2)
        rc('axes', labelsize=2, linewidth=0.2)
        rc('legend', fontsize=2, handlelength=10)
        rc('xtick', labelsize=2)
        rc('ytick', labelsize=2)
        rc('lines', lw=0.2, mew=0.2)
        rc('grid', linewidth=0.2)
    else:
        figsize = (8,8)
    
    import numpy as np
    
    x = np.arange(0, 10, 0.001)
    y = np.sin(x)
    
    import matplotlib.pyplot as plt
    f = plt.figure(figsize=figsize)
    a = f.add_subplot(111)
    a.plot(x, y, '--', label='foo bar')
    a.legend()
    f.savefig('mplt.pdf')
    

    如果将第一个可执行行更改为 small = False

    所以我的问题是,有没有办法解决这两个问题?

    我使用的matplotlib版本是0.99.1.2。

    1 回复  |  直到 14 年前
        1
  •  9
  •   Jouni K. Seppänen    14 年前

    调整 dashes ,使用

    a.plot(x, y, '--', label='foo bar', dashes=(2,2))
    

    legend box

    lg = a.legend()
    fr = lg.get_frame()
    fr.set_lw(0.2)