我正在使用Networkx来绘制我的网络。我在选择颜色方面有问题。选择的颜色通常是非常浅的,这不是很好的背景颜色是白色(见下面的例子)。有没有办法拾取较深的颜色,使图表更清晰和可见。

下面是我选择颜色的代码:
def PickupColor():
color=random.choice(list(matplotlib.colors.cnames.items()))[0]
return color发布于 2021-05-17 10:09:35
这取决于你需要多少种颜色。您可以看到支持的颜色名称列表here。注意,提到了XKCD颜色,但没有显式显示。
如果您只需要10-20 (否则我会看到您的图形变得非常密集),我会亲手挑选它们,然后从该列表中进行选择。
colors = ['black', 'gray', 'brown', 'red', ...]不用说,除了过滤较深的颜色外,还有一些配对几乎无法区分,我会选择其中之一。例如,深红色-栗色,海军蓝-深蓝色,耐火砖-深红色等。
颜色选择的另一个问题是,每次你需要一种颜色时,你都会选择一种替换的颜色。所以有可能两条链会有相同的一条。最好提前获取random.sample()所需的颜色数量。
轶事故事:有一次,我制作了一个包含200个项目的水平条形图,它的排名不断变化(只显示了前10名)。我给它们分配了一个独特的颜色,通过在0-255范围内生成6个等距数字,并结合RGB通道,我可以获得多达6**3 = 216种颜色。我很快意识到有多少颜色看起来很相似。
如果你真的需要很多颜色,你可以以某种方式通过算法生成它们,只要RGB中至少有一个颜色的值小于128,它们就应该足够暗。但实际上,除非绝对必要,否则只需精选几个不同的,就到此为止。
https://stackoverflow.com/questions/67563013
复制相似问题