在 python matplotlib 中将矩阵作为输出变量传递时,更改线条的颜色

Posted

技术标签:

【中文标题】在 python matplotlib 中将矩阵作为输出变量传递时,更改线条的颜色【英文标题】:Change colors for lines, when passing a matrix as output variable in python matplotlib 【发布时间】:2022-01-23 23:31:45 【问题描述】:

我有一个大小为nx 向量和一个(n,p) mu 矩阵。当我将它放在 pyplot 中时,我得到:

plt.plot(x_train_inv, y_train_inv, 'go', alpha=0.5, markerfacecolor='none')
plt.plot(x, mu)

绿线与绿点不太清楚,我想改变它的颜色。在这个设置中可能吗? (其中“y”是一个矩阵)如果是 - 如何?

EDIT - 一个可重现的例子:

x  = np.linspace(-1, 1, 100)
y = np.c_[x**2, np.cos(x), np.exp(x)]
plt.plot(x, y)

我希望在最后一行传递一些东西来指定 y 中每列的颜色,例如:plt.plot(x, y, color)

【问题讨论】:

【参考方案1】:

是的,有可能:

import matplotlib.pyplot as plt 
import numpy

x  = numpy.linspace(-1, 1, 100)
y = x**2
mu = numpy.random.normal(0,1, 200)
mu = mu.reshape((len(x), 2))
# plt.plot(x_train_inv, y_train_inv, 'go', alpha=0.5, markerfacecolor='none')
plt.plot(x, mu, 'go')
plt.plot(x, y, "r--")

【讨论】:

这不是我问的。我要求将一些向量/矩阵传递给plt.plot(x, mu) 以指定每列的颜色...例如plt.plot(x, mu, colors)【参考方案2】:

您可以使用set_color

import matplotlib.pyplot as plt
import numpy as np

COLORS = ['#ff5555', '#00ffaa', '#9900ff']

x  = np.linspace(-1, 1, 100)
y = np.c_[x**2, np.cos(x), np.exp(x)]

line = plt.plot(x, y)
for idx, color in enumerate(COLORS):
    line[idx].set_color(color)
plt.show()

【讨论】:

以上是关于在 python matplotlib 中将矩阵作为输出变量传递时,更改线条的颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何防止在 Python matplotlib 图中将数字更改为指数形式

在Mac OS X 10.6上的Python中,无法在Matplotlib中将字体更改为Helvetica

Python矩阵作图库matplotlib的初级使用

Python matplotlib subplot 简单使用

python+matplotlib 绘制等高线

在 matplotlib 中将一些值绘制到极坐标图