python - Python matplotlib - 如何选择较深的颜色
问题描述
我正在使用 Networkx 来绘制我的网络。我有选择颜色的问题。选择的颜色通常很浅,考虑到背景颜色是白色的,这并不好(见下面的例子)。有没有办法拾取较深的颜色以使图形更加清晰可见。
以下是我选择颜色的代码:
def PickupColor():
color=random.choice(list(matplotlib.colors.cnames.items()))[0]
return color
解决方案
这取决于你需要多少颜色。您可以在此处查看支持的颜色名称列表。请注意,提到了 XKCD 颜色,但未明确显示。
如果您最多需要 10-20 个(否则我会看到您的图表变得非常密集),我会亲自挑选它们,然后从该列表中进行选择。
colors = ['black', 'gray', 'brown', 'red', ...]
不用说,除了过滤较深的颜色外,还有几对几乎无法区分,我会选择其中一个。例如,深红色-栗色、海军-深蓝色、耐火砖-深红色等。
颜色选择的另一个问题是,每次您需要一种颜色时,您都会选择一种替换颜色。因此,两条链可能具有相同的链。最好提前获取您需要多少种颜色random.sample()
。
轶事故事:曾经我制作了一个包含 200 个项目的水平条形图,它不断改变排名(仅显示前 10 个)。我通过在 0-255 范围内生成 6 个等距数字并将其组合到 RGB 通道中,为它们分配了唯一的颜色,我可以获得多达 6**3 = 216 种颜色。我很快意识到有多少颜色看起来很相似。
如果你真的需要很多颜色,你可以通过某种方式通过算法生成它们,只要至少有一个 RGB 的值小于 128,它们就应该足够暗。但实际上,除非绝对必要,否则只需挑选几个不同的,然后收工。
推荐阅读
- mysql - 1351 - 视图的 SELECT 包含变量或参数
- symfony - Symfony 4 simple_form 自定义身份验证器不起作用
- c++ - 使用包含 boost asio 启动应用程序 0xc000007b 时出错
- vue.js - 使用 CDN 的 Vue 和 Vue 路由器
- android - 如何针对不同的手机尺寸重新修复 xml 中的所有内容?
- c# - 无法连接另一台服务器上的Mysql
- jquery - 如何使用 TypeScript 导入 jQuery,以便我可以将其设置为属性的类型
- javascript - 从函数传递数据并使用 promise 返回数据
- prestashop-1.7 - 添加 CSS 模块 Prestashop 1.7
- xml - XSD 错误:元素“元素”无效、放错位置或出现太频繁