matplotlib 画图,实现多个曲线颜色分别控制

matplotlib 画图,实现多个曲线颜色控制

由于需要设置曲线的颜色和控制按钮的颜色一致。完成之后,自己学习记录如下
matplotlib 画图,实现多个曲线颜色分别控制_第1张图片

准备1 在Qtdesigner 中设置QSS

选择需要编辑的按键,右键-> 编辑样式表,如下所示。选择添加颜色,随机设置值如下。

matplotlib 画图,实现多个曲线颜色分别控制_第2张图片

准备2 matplotlib中画图,使用plot() 函数

使用plot() 函数在pyqt5 中画图参考QT5

polt() 函数中,可以添加color 参数设置,

import numpy as np
import matplotlib.pyplot as plt
y = np.arange(1, 3, 0.3)
plt.plot(y, color = 'red')
plt.show()

matplotlib 画图,实现多个曲线颜色分别控制_第3张图片

正文部分

在有多个曲线同时显示在一个figure,且需要控制每一个曲线的颜色和控制其开关的按钮颜色一致时,
就需要设置其颜色

在上面的编辑样式表中,可以看到起颜色的RGB值
在plot() 画图中,为了将其对应过来, 可以做如下参数转换的设置,上面的数据是[255,168,85] 现在是[255/255,156/255,85/255,1] ,末尾添加一个1,这个地方我添加了8 个不同的颜色,

ALL_Color = [[1, 0, 0, 1], [0, 252 / 255, 0, 1], [0, 0, 1, 1], [46 / 255, 217 / 255, 1, 1],
                      [1, 156 / 255, 85 / 255, 1 / 255], [1, 51 / 255, 129 / 255, 1], [186 / 255, 12 / 255, 1, 1],
                      [0, 0, 0, 1]] 

颜色控制

在plot() 函数中,color 每次只接受一个颜色的参数,思路如下,

matplotlib 画图,实现多个曲线颜色分别控制_第4张图片假设有8 个颜色, 我现在有8 个数据曲线需要显示编号分别是channel = [0,1,2,…7]
现在需要显示 channel的[1,3,4,6] 曲线。那么我需要在plot(color = )的color参数设定对应的颜色
就是2个list,第一个提供值, 第二个list 有第一个list 的index,根据第二个的index,去第一个list 取值
matplotlib 画图,实现多个曲线颜色分别控制_第5张图片

代码部分

import numpy as np
import  time
import matplotlib.pyplot as plt
y = np.arange(1, 3, 0.3)
ALL_Color = [[1, 0, 0, 1], [0, 252 / 255, 0, 1], [0, 0, 1, 1], [46 / 255, 217 / 255, 1, 1],
             [1, 156 / 255, 85 / 255, 1], [1, 51 / 255, 129 / 255, 1],
              [186 / 255, 12 / 255, 1, 1],   [0, 0, 0, 1]]
# 需要显示4 个指定的颜色数据。
ch = [0,4,5,7]
chen = ch
# 选择
coloritem = [ALL_Color[i] for i in chen]
# 使用numpy随机生成数据
t = np.linspace(0, 10, 8000)
y= []
for i in range(1, 9):    
    y.append(np.sin(t * i + time.time()) * 100)
# 循环显示数据,
for i in range(len(ch)):
    plt.plot(t,y[i],color =coloritem[i] )
plt.show()

上面的代码运行如下,我选定了4 个曲线的颜色,在本来有8 个曲线数据中, 选择了 【0,4,5,7】这几个数据来做显示,然后一次循环生成显示。

matplotlib 画图,实现多个曲线颜色分别控制_第6张图片

你可能感兴趣的:(matplotlib 画图,实现多个曲线颜色分别控制)