【问题标题】:Python using custom color in plotPython在绘图中使用自定义颜色
【发布时间】:2017-02-25 04:43:56
【问题描述】:

我有一个问题(我认为)应该有一个相当简单的解决方案。我仍然是 Python 的新手,所以如果我做的事情明显错了,我深表歉意。我只是想用多条线创建一个简单的图,其中每条线都由自己特定的用户定义颜色着色。当我运行以下代码作为其中一种颜色的测试时,它最终给了我一个空白图。我在这里想念什么?非常感谢!

import numpy as np
import matplotlib.pyplot as plt
from colour import Color 

dbz53 = Color('#DD3044')

*a bunch of arrays of data, two of which are called x and mpt1* 

fig, ax = plt.subplots()
ax.plot(x, mpt1, color='dbz53', label='53 dBz')
ax.set_yscale('log')

ax.set_xlabel('Diameter (mm)')
ax.set_ylabel('$N(D) (m^-4)$')
ax.set_title('N(D) vs. D')
#ax.legend(loc='upper right')

plt.show()

【问题讨论】:

  • 我不熟悉colour 模块,但ax.plot 接受其他十六进制颜色。我会用那个。你确定你的数据有意义吗?
  • 请不要在问题中添加答案。问题应该是问题。如果缺少答案的某些部分,请添加您自己的答案,或者在您认为更合适的情况下编辑现有帖子。
  • 如果任何答案对您有用,请考虑通过单击向上箭头进行投票,并通过单击对勾(复选)标记接受最佳答案。这是在 SO 中表示感谢的首选方式,而不是在 cmets 中。

标签: python numpy matplotlib colors


【解决方案1】:

声明

ax.plot(x, mpt1, color='dbz53', label='53 dBz')

'dbz53' 错误,python 将其视为未知 rgb 值的字符串。
你可以简单地说

color='#DD3044'

它会起作用的。
或者你可以试试

color=dbz53.get_hex()

如果你想使用你导入的颜色模块,不带引号。

【讨论】:

    【解决方案2】:

    plot 命令中,您可以输入十六进制颜色。一种更简单的美化情节的方法是简单地使用 matplotlib 样式。例如,在任何绘图功能之前,只需写 plt.style.use('ggplot')

    【讨论】:

    • 如果您花时间为这样一个简单的问题添加答案,请一路添加一个简单的十六进制颜色的实际示例。
    • 我从来没有想过在颜色参数中输入十六进制颜色而不是命名的、预定义的 matplotlib 颜色。德普。谢谢你们!
    猜你喜欢
    • 2022-01-20
    • 2017-07-20
    • 1970-01-01
    • 2015-12-08
    • 2014-09-19
    • 2022-01-18
    • 1970-01-01
    • 2019-03-17
    • 1970-01-01
    相关资源
    最近更新 更多