Matplotlib 颜色

要想把数据表示得生动的趣,往往需要使用多种颜色来配合,才可以让数据得已区分开来。那么就来学习一下matplotlib的颜色。在matplotlib里主要使用一些简单的字母来表示颜色,比如:

  • ‘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)表示浅灰色。通过下面的程序,可以绘制一个红色图:

Matplotlib 颜色

绘制这个色图时,使用了一个函数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之间,就是表示半透明状态。如下图:

Matplotlib 颜色

左边的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来画满整个图,就可以得到黑色背景了,因此也可以采用这个方法来画不同颜色的背景。

赞(1)
未经允许不得转载:极客笔记 » Matplotlib 颜色
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址