Python 如何为matplotlib绘图上的点使用更多颜色?

Python 如何为matplotlib绘图上的点使用更多颜色?,python,matplotlib,Python,Matplotlib,我有以下最简单的工作示例: #!/usr/bin/python # -*- coding: utf-8 -*- import math import numpy import pylab as pl import matplotlib.pyplot as plt violet=[0.872,0.947,1.016,1.075,1.120] transmission=[20.0,40.0,60.0,80.0,100.0] fit_violet=numpy.polyfit(transmissio

我有以下最简单的工作示例:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import math
import numpy
import pylab as pl
import matplotlib.pyplot as plt

violet=[0.872,0.947,1.016,1.075,1.120]
transmission=[20.0,40.0,60.0,80.0,100.0]

fit_violet=numpy.polyfit(transmission,violet,1)
fitpol_violet=numpy.poly1d(fit_violet)
xfit=numpy.linspace(0.0,120.0)
yfit_violet=fitpol_violet(xfit)

pl.plot(xfit, yfit_violet, 'k', linewidth=2, label=u'Rectas de ajuste')
pl.plot(transmission, violet, 'bo', markersize=6, label=u'Valores experimentales')
pl.xlim(0.0,120.0)
pl.show()

据我所知,我只能为绘图中的点选择基本颜色,使用字母“b”表示蓝色,“r”表示红色,等等。但我希望能够为这些圆点选择一种特定的紫罗兰色。这种类型的绘图是否可以使用更广泛的颜色范围?

使用
color
参数,您可以提供各种不同格式的任何颜色。 这些都列在清单中

Matplotlib提供了8种指定颜色的方法

  • [0,1]中浮点值的RGB或RGBA元组(例如,(0.1,0.2,0.5)或(0.1,0.2,0.5,0.3))。RGBA是红、绿、蓝、阿尔法的缩写
  • 十六进制RGB或RGBA字符串(例如,“#0F0F”或“#0F0F”)
  • [0,1]中浮点值的字符串表示,包括灰度(例如,“0.5”)
  • 单字母字符串,即{'b','g','r','c','m','y','k','w'}中的一个
  • X11/CSS4(“html”)颜色名称,例如“蓝色”
  • 来自xkcd颜色调查的名称,前缀为“xkcd:”(例如,“xkcd:天蓝色”)
  • “Cn”颜色规格,即“C”后跟一个数字,这是默认属性周期的索引(matplotlib.rcParams['axes.prop_cycle']);索引在艺术家创建时发生,如果循环不包括颜色,则默认为黑色
  • {'tab:blue','tab:orange','tab:green','tab:red','tab:purple','tab:brown','tab:pink','tab:gray','tab:olive','tab:cyan'}中的一种,它们是来自'tab10'类别调色板(默认颜色循环)的表格颜色 在你的问题中,你指的是这个列表中的第4个。取而代之的是考虑例如

    plt.plot(x,y, color="violet", linewidth=2)
    plt.plot(x,y, color="#ee82ee", linewidth=2)
    plt.plot(x,y, color=(.9333, .5098, .9333), linewidth=2)
    

    所有颜色都会产生相同的紫色。

    使用
    color
    参数,您可以提供各种不同格式的任何颜色。 这些都列在清单中

    Matplotlib提供了8种指定颜色的方法

  • [0,1]中浮点值的RGB或RGBA元组(例如,(0.1,0.2,0.5)或(0.1,0.2,0.5,0.3))。RGBA是红、绿、蓝、阿尔法的缩写
  • 十六进制RGB或RGBA字符串(例如,“#0F0F”或“#0F0F”)
  • [0,1]中浮点值的字符串表示,包括灰度(例如,“0.5”)
  • 单字母字符串,即{'b','g','r','c','m','y','k','w'}中的一个
  • X11/CSS4(“html”)颜色名称,例如“蓝色”
  • 来自xkcd颜色调查的名称,前缀为“xkcd:”(例如,“xkcd:天蓝色”)
  • “Cn”颜色规格,即“C”后跟一个数字,这是默认属性周期的索引(matplotlib.rcParams['axes.prop_cycle']);索引在艺术家创建时发生,如果循环不包括颜色,则默认为黑色
  • {'tab:blue','tab:orange','tab:green','tab:red','tab:purple','tab:brown','tab:pink','tab:gray','tab:olive','tab:cyan'}中的一种,它们是来自'tab10'类别调色板(默认颜色循环)的表格颜色 在你的问题中,你指的是这个列表中的第4个。取而代之的是考虑例如

    plt.plot(x,y, color="violet", linewidth=2)
    plt.plot(x,y, color="#ee82ee", linewidth=2)
    plt.plot(x,y, color=(.9333, .5098, .9333), linewidth=2)
    

    所有这些都会导致相同的紫罗兰色。

    您将使用以下内容:

    pl.plot(transmission, violet, "o", color="#EE82EE", markersize=6, label=u'Valores experimentales')
    
    给予:


    您将使用以下内容:

    pl.plot(transmission, violet, "o", color="#EE82EE", markersize=6, label=u'Valores experimentales')
    
    给予:


    从中,您也可以使用RGBA值或十六进制值,如
    color='#eefff'
    @G.Anderson中所示,但语法应该是怎样的?我试过了,但它给了我一个错误(在关键字arg之后是非关键字arg)。当您混合关键字(
    linewidth=2
    )和位置(
    xfit,yfit\u violet
    )arg时,会出现这种错误。避免将来出现这种错误的一种方法是:对所有arg使用关键字,使其明确无误:
    pl.plot(x=xfit,y=yfit_violet,c='k',linewidth=2,label=u'Rectas de ajuste')
    中的RGBA值或十六进制值也可以使用,
    color=''eeefff'
    @G.Anderson但语法应该是什么?我已经尝试过了,但它给我一个错误(关键字arg之后是非关键字arg)。混合关键字(
    linewidth=2
    )和位置(
    xfit,yfit\u violet
    )参数。避免将来出现这种错误的一种方法是:对所有参数使用关键字以使其明确:
    pl.plot(x=xfit,y=yfit\u violet,c='k',linewidth=2,label=u'Rectas de ajuste')
    哦,哇。我的错误是我在“violet”之后写了“o”,而不是另一种方式,它产生了“关键字arg之后的非关键字arg”错误。非常感谢!哦,哇。我的错误是我在“紫色”之后写了“o”,而不是另一种方式,它产生了“关键字arg之后的非关键字arg”错误。非常感谢!