【问题标题】:Best way to display Seaborn/Matplotlib plots with a dark iPython Notebook profile使用深色 iPython Notebook 配置文件显示 Seaborn/Matplotlib 图的最佳方式
【发布时间】:2014-10-16 13:26:47
【问题描述】:

我使用出色的 Seaborn 库来获取 IPython Notebook 中的一些摘要统计信息。我最近为我的笔记本切换到了深色主题,并试图为 Seaborn 找出深色背景的最佳视觉效果。我正在使用darkgrid 样式,但图例仍以黑色打印,这使得它们无法阅读。这是一个例子:

修复我的 Seaborn 使用风格以使图例显示为白色的最佳方法是什么?

更新: 我刚刚注意到我的 Matplotlib 图也存在同样的问题。所以我的问题更笼统。您使用什么样式来允许在深色图上显示白色以便图例可读?

【问题讨论】:

    标签: matplotlib ipython ipython-notebook seaborn


    【解决方案1】:

    您可以自定义 seaborn 样式,它会尽量让这件事变得相对容易。

    如果您想查看被视为“样式”定义一部分的每个参数,只需调用不带参数的sns.axes_style(),它将返回当前设置。从 0.3.1 开始,对于默认样式(“darkgrid”),如下所示:

    {'axes.axisbelow': True,
     'axes.edgecolor': 'white',
     'axes.facecolor': '#EAEAF2',
     'axes.grid': True,
     'axes.labelcolor': '.15',
     'axes.linewidth': 0,
     'font.family': 'Arial',
     'grid.color': 'white',
     'grid.linestyle': '-',
     'image.cmap': 'Greys',
     'legend.frameon': False,
     'legend.numpoints': 1,
     'legend.scatterpoints': 1,
     'lines.solid_capstyle': 'round',
     'pdf.fonttype': 42,
     'text.color': '.15',
     'xtick.color': '.15',
     'xtick.direction': 'out',
     'xtick.major.size': 0,
     'xtick.minor.size': 0,
     'ytick.color': '.15',
     'ytick.direction': 'out',
     'ytick.major.size': 0,
     'ytick.minor.size': 0}
    

    一个很好的启发式方法是您可能只需要名称中带有"color" 的参数,因此您可以对其进行过滤:

    {k: v for k, v in sns.axes_style().items() if "color" in k}
    

    返回

    {'axes.edgecolor': 'white',
     'axes.facecolor': '#EAEAF2',
     'axes.labelcolor': '.15',
     'grid.color': 'white',
     'text.color': '.15',
     'xtick.color': '.15',
     'ytick.color': '.15'}
    

    然后您可以将包含这些参数值的自定义字典传递给sns.set_style()

    custom_style = {'axes.labelcolor': 'white',
                    'xtick.color': 'white',
                    'ytick.color': 'white'}
    sns.set_style("darkgrid", rc=custom_style)
    

    【讨论】:

    • 是的,但是:您可以将其设置为默认值吗?还是需要将这段代码粘贴到每个笔记本中?
    【解决方案2】:
    sns.set_style("darkgrid")
    

    将使背景变白,以便您可以看到文字。

    【讨论】:

      【解决方案3】:

      为什么不简单

      plt.style.use("dark_background")

      【讨论】:

        【解决方案4】:

        我发现添加这个

        plt.figure(facecolor='w')
        

        每次我绘制时都会处理轴背景。

        【讨论】:

          猜你喜欢
          • 2020-09-29
          • 2015-05-14
          • 1970-01-01
          • 2016-10-18
          • 1970-01-01
          • 1970-01-01
          • 2016-05-15
          • 1970-01-01
          相关资源
          最近更新 更多