Matplotlib& Python:在进行迭代绘图时指定颜色

时间:2015-12-15 08:44:24

标签: python matplotlib

我有<f:subview>来绘制,但椭圆将以相同的颜色绘制。这使得很难区分彼此:

a group of ellipses

enter image description here

我想知道如何在绘图时为每个颜色分配颜色,因此椭圆将更容易看到。

1 个答案:

答案 0 :(得分:2)

您可以使用ax._get_lines.color_cycle访问Matplotlib的颜色循环。这是一个迭代器,因此每次绘制椭圆时都要在其上调用next()

def plot_ellpises(ell_groups):
    print 'GMM Plot Result'
    fig, ax = plt.subplots()
    colors = ax._get_lines.color_cycle
    for ell in ell_groups:
        xy, width, height, angle = ell
        ell = mpl.patches.Ellipse(xy=xy, width=width, height=height,
                                  angle = angle, facecolor=next(colors))
        ell.set_alpha(0.5)
        ax.add_patch(ell)
    ax.autoscale()
    ax.set_aspect('equal')
    return plt.show() 

enter image description here

要指定循环的颜色,可以在绘图前将它们显式设置为rcParams。例如,对于品红色,红色,黄色:

mpl.rcParams['axes.color_cycle'] = ['m', 'r', 'y']

enter image description here