【问题标题】:Matplotlib dulls the color red in the plotMatplotlib 使图中的红色变暗
【发布时间】:2019-11-19 11:23:41
【问题描述】:

当我使用 Matplotlib 在 Spyder 中绘制图形时,红色有时会变暗。例如,

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0,10,100)
y = 2*x

plt.plot(x,y, color = 'r', linewidth = 10)
plt.show()

将生成图像

而不是

如果我在看到暗红色后重新启动 Spyder,那么它会产生具有正常红色的良好绘图。我只在用红色绘制时才注意到这一点。我使用的版本是 Python 3.7.0、Spyder 3.3.4、IPython 7.2.0 和 Matplotlib 3.0.2。如果相关的话,我也在使用 Mac Mojave。

【问题讨论】:

  • 它也在对行尾进行四舍五入。奇怪!
  • 显然您事先执行了一些我们不知道的代码。因此,您需要查看该代码并查看它的作用或在问题中提供该代码,以便人们可以追踪它的来源。

标签: python python-3.x matplotlib colors spyder


【解决方案1】:

在执行代码之前的某个地方,您会看到一行类似的内容

import seaborn as sns
sns.set(style="white")

或类似的。

完整代码:

import seaborn as sns
sns.set(style="white")

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0,10,100)
y = 2*x

plt.plot(x,y, color = 'r', linewidth = 10)
plt.show()

解释是,如果 color_codes 参数设置为 True(这是默认值),seaborn.set 会更新颜色。

color_codes : 布尔 如果 Truepalette 是 seaborn 调色板,则重新映射速记 颜色代码(例如“b”、“g”、“r”等)到此调色板中的颜色。

seaborn 文档中还有一个example

所以你可以使用

import seaborn as sns
sns.set(style="white", color_codes=False)

得到

或者根本不使用.set

【讨论】:

  • 感谢您提供另一个详细的答案 :) 我发布的代码实际上是我在该脚本中运行的所有代码。但是,我确实按照您在同一会话中运行的不同脚本中描述的方式设置了 Seaborn 样式。 IPython/Spyder 是否会在打开的整个过程中记住该设置?即使我同时运行这两个脚本,我也不会总是遇到这个问题。
  • 这完全取决于你的 spyder 设置;但我认为默认情况下脚本都在同一个 IPython 控制台中运行;所以在这种情况下,python 会话保持打开状态,当然会“记住”以前的设置。 Spyder 提供了在每次运行脚本时启动新控制台的选项,甚至可以使用系统控制台来代替 - 这取决于您配置自己喜欢的方式。
【解决方案2】:

当我运行你的代码时,我得到了第二个正常红色的图。我正在使用 Matplotlib 3.0.3 版本。 顺便说一句,您始终可以通过在代码中指定 rgb(rgb 应在 0.0 到 1.0 的范围内)来玩弄颜色以获得您喜欢的颜色:

plt.plot(x,y, color = (0.95, 0, 0), linewidth = 10)

【讨论】:

    猜你喜欢
    • 2016-10-12
    • 1970-01-01
    • 2018-05-31
    • 2018-12-04
    • 1970-01-01
    • 2013-02-05
    • 2020-03-18
    • 2013-01-09
    • 2012-10-07
    相关资源
    最近更新 更多