【问题标题】:Legend opacity in iPython NotebookiPython Notebook 中的图例不透明度
【发布时间】:2015-04-16 14:30:57
【问题描述】:

我在 Python 3 中使用最新版本的 iPython Notebook 来显示使用 %matplotlib inline 的绘图。情节中的传说没有背景,底层数字显示出来。当我使用终端或 IDE 创建图时,图例是不透明的。如何使 iPython Notebook 中的图例也变得不透明?

py.rcParams['xtick.major.pad'] = 8
py.rcParams['ytick.major.pad'] = 8
py.rcParams['lines.linewidth'] = 2
py.rcParams['legend.fontsize'] = 12
py.rcParams['legend.fancybox'] = True
py.rcParams['axes.grid'] = True

py.figure(2, figsize=(14,6))

py.subplot(1,2,1)
py.plot(t, co, label='co')
py.plot(t, co2, label='co2')
py.plot(t, ch2o, label='ch2o')
py.plot(t, hcooh, label='hcooh')
py.plot(t, ch4, label='ch4')
py.plot(t, glyox, label='glyox')
py.plot(t, c2h4o, label='c2h4o')
py.title('Cellulose Species, T = {} K'.format(Tinf))
py.xlabel('Time (s)')
py.ylabel('Mass Fraction')
py.legend(loc='best', numpoints=1)

py.subplot(1,2,2)
py.plot(t, haa, label='haa')
py.plot(t, c3h6o, label='c3h6o')
py.plot(t, hmfu, label='HMFU')
py.plot(t, lvg, label='LVG')
py.plot(t, h2, label='h2')
py.plot(t, h2o, label='h2o')
py.plot(t, char, label='char')
py.title('Cellulose Species, T = {} K'.format(Tinf))
py.xlabel('Time (s)')
py.legend(loc='best', numpoints=1)

py.show()

【问题讨论】:

    标签: python-3.x matplotlib plot ipython-notebook


    【解决方案1】:

    试试这个:

    创建图例时,将其分配给变量,例如 legend,然后添加以下行:

    legend.get_frame().set_fc('w')
    legend.get_frame().set_alpha(1)
    legend.set_zorder(99)
    

    这将使图例的背景变为白色并位于线条的前面。

    【讨论】:

    • 仅添加 .get_frame().set_fc('white') 就足以解决我的问题。是否可以在代码单元格中应用此命令,以便将其应用于笔记本中的每个绘图图例?
    • 据我所知,由于facecolor 参数不是legend rc 部分的一部分,因此您无法在每个会话中设置一次。每次需要更改图例时都需要调用它。
    猜你喜欢
    • 2015-06-16
    • 1970-01-01
    • 2013-01-22
    • 1970-01-01
    • 2016-12-02
    • 2013-05-03
    • 2014-02-17
    • 2011-02-07
    • 1970-01-01
    相关资源
    最近更新 更多