在 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 【问题描述】:我有一个大小为n
的x
向量和一个(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