【问题标题】:Using multiple colors in matplotlib plot在 matplotlib 图中使用多种颜色
【发布时间】:2013-03-18 16:28:30
【问题描述】:

我有一个二维数据点 (x,y) 的 numpy 数组,分为三类 (0,1,2)。

a = array([[ 1, 2, 3, 4, 5, 6, 7, 8 ],
           [ 9, 8, 7, 6, 5, 4, 3, 2 ]])

class = array([0, 2, 1, 1, 1, 2, 0, 0])

我的问题是我是否可以用多种颜色绘制这些点。我想做这样的事情:

colors = list()
for i in class:
    if i == 0:
        colors.append('r')
    elif i == 1:
        colors.append('g')
    else:
        colors.append('b')

print colors
['r', 'b', 'g', 'g', 'g', 'b', 'r', 'r']

pp.plot(a[0], a[1], color = colors)

【问题讨论】:

    标签: python colors matplotlib plot


    【解决方案1】:

    我假设您想绘制不同的点。在这种情况下, 如果你定义一个 numpy 数组:

    colormap = np.array(['r', 'g', 'b'])
    

    然后您可以使用colormap[categories] 生成颜色数组:

    In [18]: colormap[categories]
    Out[18]: 
    array(['r', 'b', 'g', 'g', 'g', 'b', 'r', 'r'], 
          dtype='|S1')
    

    import matplotlib.pyplot as plt
    import numpy as np
    
    a = np.array([[ 1, 2, 3, 4, 5, 6, 7, 8 ],
                  [ 9, 8, 7, 6, 5, 4, 3, 2 ]])
    
    categories = np.array([0, 2, 1, 1, 1, 2, 0, 0])
    
    colormap = np.array(['r', 'g', 'b'])
    
    plt.scatter(a[0], a[1], s=50, c=colormap[categories])
    plt.show()
    

    产量

    【讨论】:

      猜你喜欢
      • 2015-11-04
      • 1970-01-01
      • 1970-01-01
      • 2016-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      相关资源
      最近更新 更多