要想把数据表示得生动的趣,往往需要使用多种颜色来配合,才可以让数据得已区分开来。那么就来学习一下matplotlib的颜色。在matplotlib里主要使用一些简单的字母来表示颜色,比如:
参考:
- Matplotlib Color Tutorials List
-
‘k’表示黑色;
- ‘b’表示蓝色
- ‘c’表示青色
- ‘g’表示绿色
- ‘m’表示洋红
- ‘r’表示红色
- ‘y’黄色
- ‘gray’或’grey’代表灰色
- ‘lightgray’或’lightgrey’代表浅灰
这些颜色都是常用的颜色,如果你想定义一些特别的颜色,上面这些颜色也许不会满足你的需求,那么怎么办呢?这个不用急,接着下来介绍可以定义任意颜色的函数,它就是color = (r,g,b)的方式,这个语句就是利用红绿蓝三种颜色进行混合生成新颜色,这里r、g、b的取值范围是从0到1,如果color=(1,0,0)那么表示是红色,color=(0.7, 0.7, 0.7)表示浅灰色。通过下面的程序,可以绘制一个红色图:
绘制这个色图时,使用了一个函数plot(),这个函数定义如下:
plt.plot([x1, x2], [y1, y2], linewidth = lw, color = ‘color’, linestyle = ‘ls’)
这个函数是画一条从(x1, y1)到(x2, y2)的直线,linewidth指定了线的宽度,color指定了线的颜色,linestyle指定线的样式。
整个例子的代码如下:
import matplotlib.pyplot as plt
import numpy as np
x1, x2 = 0, 100
y1, y2 = 0, 10
fig = plt.figure('deepinout.com')
plt.axis([x1, x2, y1, y2]) #
plt.xlabel('time')
plt.ylabel('S')
plt.title('title')
for x in np.arange(1, 100, 1):
r = x/100
g = 0
b = 0
plt.plot([x, x], [0, 10], linewidth = 5, color = (r, g, b))
plt.show()
在例子里,只有红色变量发生变化,如果你想构造不同的颜色,可以自行修改一下,比如只有绿色变化,或者只有蓝色变化,又或者三种颜色都在变化,就可以构造1700万种颜色。
有时候想混合背景的颜色,这时就需要使用透明通道的设置了,可以通过alpha参数来达到此目的。它的取值从0到1,当取值为1时,表示不透明,没有背景的颜色,如果为0就是表示完全透明。介于0与1之间,就是表示半透明状态。如下图:
左边的alpha为1, 中间为0.5, 右边为0.1。
整个演示例子如下:
import matplotlib.pyplot as plt
import numpy as np
x1, x2 = 0, 100
y1, y2 = 0, 10
fig = plt.figure('deepinout.com')
plt.axis([x1, x2, y1, y2]) #
plt.xlabel('time')
plt.ylabel('S')
plt.title('title')
plt.scatter(20, 5, s = 1000, color = 'b', alpha = 1)
plt.scatter(40, 5, s = 1000, color = 'b', alpha = 0.5)
plt.scatter(60, 5, s = 1000, color = 'b', alpha = 0.1)
plt.show()
一般情况下,我们是在白色背景上绘制图案,但有时候需要在黑色背景下绘制,那又需要怎么办呢?由于matplotlib默认就是白色的背景,所以不用关心这个,但是黑色就要自己动手设置了,其实也比较简单的,就采用绘直线的函数plot来画满整个图,就可以得到黑色背景了,因此也可以采用这个方法来画不同颜色的背景。