首页 文章

matplotlib用rcParams改变线条颜色

提问于
浏览
1

我刚刚了解了 matplotlib.rcParams 功能,所以我尝试绘制一个非常简单的图形 .

import matplotlib.pyplot as plt

x = [1,2,3,4,5]
y = [5,3,7,9,2]

plt.rcParams['lines.color'] = 'r'
plt.rcParams['lines.linewidth'] = 3.0

plt.plot(x, y)
plt.show()

结果图增加了线宽但颜色保持不变 . 这条线仍然是蓝色的 . 当我检查 plt.rcParams['lines.color'] 值时,它会打印 'r' . 我正在使用 matplotlib version 1.3.132-bit Python 2.7.6 .

难道我做错了什么 ?

3 回答

  • 2

    http://matplotlib.org/users/customizing.html中所述,它对plot()没有影响

    #lines.color:blue#对plot()没有影响;请参阅axes.color_cycle

    相反,这有效:

    plt.rcParams['axes.color_cycle']='r'
    plt.rcParams['lines.linewidth'] = 3.0
    
    plt.plot(x, y)
    plt.show()
    
  • 3

    我不确定 line.color 何时被使用 . 但是当你这样做时,线条的颜色取自 axes.color_cycle 设置 . 这可以是单一颜色,但通常(并且默认情况下)是多种颜色的列表 .

    x = [1,2,3,4,5]
    y = [5,3,7,9,2]
    
    plt.rcParams['lines.linewidth'] = 3.0
    plt.rcParams['axes.color_cycle'] = ['r', 'grey']
    
    # default cycle is: `['b', 'g', 'r', 'c', 'm', 'y', 'k']`
    
    plt.plot(x, y)
    plt.plot(y, x)
    

    enter image description here

  • 1

    从matplotlib 1.5开始,不推荐使用mpl.rcParams ['axes.color_cycle'] . 你应该使用axes.prop_cycle:

    import matplotlib as mpl
    mpl.rcParams['axes.prop_cycle'] = mpl.cycler(color=["r", "#e94cdc", "0.7"])
    

相关问题