0

我正在使用 pandas 来绘制节点集群的数据。我发现 pandas 会重复不同系列的颜色值,这使得它们无法区分。

我尝试提供这样的自定义颜色值并将 my_colors 传递给绘图中的颜色字段:

  my_colors = []
  for node in nodes_list:
    my_colors.append(rand_color())

rand_color() 定义如下:

  def rand_color():
    from random import randrange
    return "#%s" % "".join([hex(randrange(16, 255))[2:] for i in range(3)])

但在这里我也需要避免颜色值太接近而无法区分。我有时有多达 60 个节点(系列)。很可能一个硬编码的颜色值列表是最好的选择?

4

1 回答 1

3

您可以从 Matplotlib 中定义的任何颜色图中获取颜色列表,甚至可以通过以下方式获取自定义颜色图:

>>> import matplotlib.pyplot as plt
>>> colors = plt.cm.Paired(np.linspace(0,1,60))

用这些颜色绘制一个例子:

>>> plt.scatter( range(60), [0]*60, color=colors )
<matplotlib.collections.PathCollection object at 0x04ED2830>
>>> plt.axis("off")
(-10.0, 70.0, -0.0015, 0.0015)
>>> plt.show()

颜色

我发现“配对”颜色图对这类事情特别有用,但您可以使用任何其他可用或自定义的颜色图。

于 2013-01-30T13:31:49.767 回答