2014-02-10 57 views
0

为了绘制不同于彼此的整体加载曲线,函数plot_loads准备在fill_between处生成随机颜色。不按预期以不同颜色结果。无法发现错误?请帮助。matplotlib facecolor多种颜色全部结果为黑色

def plot_loads(ti, tf, loads, max_y): 
    """ 
    plot load curves 

    \param ti : init t 
    \param tf : final t 
    \param loads : list of load curve lists 
        loads = [[ load1], [load2], ...] 
    \param max_y : vertical limit.""" 

    #imports 
    from matplotlib import pyplot as plt 
    import numpy as np 
    import random 

    ys_array = [] 

    for item in loads: 
     ys_array.append(item) 

    y = np.row_stack(ys_array) 
    x = np.arange(ti, tf) 

    y_stack = np.cumsum(y, axis=0) 

    fig = plt.figure(random.randint(1,1000)) 
    #plot frame positioning 
    ax1 = fig.add_subplot(211) 

    #plot maximum load 
    ax1.fill_between(x, 0, max_y, alpha=0.1, facecolor = 'black') 

    # 
    for i, item in enumerate(loads): 
     if i == 0: 
      ax1.fill_between(x, 0, y_stack[0,:], facecolor = random.choice(['g', 'r', 'c', 'm', 'y', 'k'])) 
     else: 
      ax1.fill_between(x, y_stack[i-1,:], y_stack[i,:], facecolor =random.choice(['g', 'r', 'c', 'm', 'y', 'k'])) 

    plt.show() 
+0

它确实情节不同的颜色对我来说没有问题。你能扩展错误实际上是什么? – Greg

+0

它的确如此。你能告诉我你是如何运行这个功能的吗?在情节运行返回全黑给我。 – Jack

+0

类似于:loads = [np.linspace(0,20,10),np.linspace(0,10,10),np.linspace(0,10,10)]'然后调用 'plot_loads(0 ,10,loads,40)'产生[this](http://imgur.com/YJsUxHM)。 – Greg

回答

0

希望数字波纹管将很好地说明答案。 从你的熟人中丢弃第二个子图。

  1. 该窗口尚未扩展。

enter image description here

  • 展开或缩放窗口,颜色变得可见。 enter image description here

  • 与指令线宽= 0.0在fill_between,[解决]

  • enter image description here

    相关问题