我正在使用matplotlib
创建绘图。我必须用Python自动生成的不同颜色来标识每个图。
你能给我一种方法来把不同的地块放在同一张图中吗?
发布于 2016-03-13 21:54:09
稍后设置它们
如果您不知道要绘制的图的数量,您可以在绘制后更改颜色,使用.lines
直接从图中检索编号,我使用以下解决方案:
一些随机数据
import matplotlib.pyplot as plt
import numpy as np
fig1 = plt.figure()
ax1 = fig1.add_subplot(111)
for i in range(1,15):
ax1.plot(np.array([1,5])*i,label=i)
您需要的代码片段:
colormap = plt.cm.gist_ncar #nipy_spectral, Set1,Paired
colors = [colormap(i) for i in np.linspace(0, 1,len(ax1.lines))]
for i,j in enumerate(ax1.lines):
j.set_color(colors[i])
ax1.legend(loc=2)
结果如下:
发布于 2013-10-18 05:26:22
我想对上一篇文章中给出的最后一个循环答案做一点小小的改进(这篇文章是正确的,仍然应该被接受)。在标记最后一个示例时所做的隐式假设是,plt.label(LIST)
将标签号X放入LIST
中,其中的行对应于plot
被调用的第X次。我以前遇到过这种方法的问题。根据matplotlibs文档( http://matplotlib.org/users/legend_guide.html#adjusting-the-order-of-legend-item)构建图例和自定义其标签的推荐方法是有一种温暖的感觉,即标签与您认为它们所做的完全一致:
...
# Plot several different functions...
labels = []
plotHandles = []
for i in range(1, num_plots + 1):
x, = plt.plot(some x vector, some y vector) #need the ',' per ** below
plotHandles.append(x)
labels.append(some label)
plt.legend(plotHandles, labels, 'upper left',ncol=1)
发布于 2020-07-09 23:10:58
Matplot使用不同的颜色为您的绘图着色,但以防您想要将特定的颜色
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
plt.plot(x, x)
plt.plot(x, 2 * x,color='blue')
plt.plot(x, 3 * x,color='red')
plt.plot(x, 4 * x,color='green')
plt.show()
https://stackoverflow.com/questions/4805048
复制相似问题