如何在matplotlib图上为点使用更多颜色?

时间:2018-11-30 19:22:24

标签: 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(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”代表红色,依此类推。但我希望能够为这些点选择特定的紫罗兰色。对于这种类型的图,可以使用更广泛的颜色吗?

2 个答案:

答案 0 :(得分:3)

使用color参数可以提供各种不同格式的任何颜色。 这些在the documentation中列出。

  

Matplotlib为您提供8种指定颜色的方法,

     
      [li] [0,1]中的float值的RGB或RGBA元组(例如(0.1,0.2,0.5)或(0.1,0.2,0.5,0.3))。 RGBA是红色,绿色,蓝色,Alpha的缩写;   
  1. 十六进制RGB或RGBA字符串(例如'#0F0F0F'或'#0F0F0F0F');
  2.   
  3. 浮点值的字符串表示形式,包括[0,1](包括灰度)(例如'0.5');
  4.   
  5. 单个字母字符串,即{'b','g','r','c','m','y','k','w'}中的一个;
  6.   
  7. X11 / CSS4(“ html”)颜色名称,例如“蓝色”;
  8.   
  9. xkcd颜色调查中的名称,以'xkcd:'开头(例如,'xkcd:sky blue');
  10.   
  11. “ Cn”颜色规范,即“ C”后跟一位数字,这是默认属性周期的索引(matplotlib.rcParams ['axes.prop_cycle']);该索引发生在艺术家创建时,如果循环不包含颜色,则默认为黑色。
  12.   
  13. {'tab:blue','tab:orange','tab:green','tab:red','tab:purple','tab:brown','tab:pink','tab :gray','tab:olive','tab:cyan'},它们是“ tab10”分类调色板中的Tableau颜色(这是默认颜色周期);
  14.   

在您的问题中,您指的是此列表的第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)

所有都导致相同的紫色。

答案 1 :(得分:1)

您将使用以下内容:

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

给予:

enter image description here