首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在单个图形中为不同的图形绘制不同的彩色线条?

如何在单个图形中为不同的图形绘制不同的彩色线条?
EN

Stack Overflow用户
提问于 2011-01-26 21:25:11
回答 4查看 411K关注 0票数 220

我正在使用matplotlib创建绘图。我必须用Python自动生成的不同颜色来标识每个图。

你能给我一种方法来把不同的地块放在同一张图中吗?

EN

回答 4

Stack Overflow用户

发布于 2016-03-13 21:54:09

稍后设置它们

如果您不知道要绘制的图的数量,您可以在绘制后更改颜色,使用.lines直接从图中检索编号,我使用以下解决方案:

一些随机数据

代码语言:javascript
复制
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)

您需要的代码片段:

代码语言:javascript
复制
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)

结果如下:

票数 37
EN

Stack Overflow用户

发布于 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)构建图例和自定义其标签的推荐方法是有一种温暖的感觉,即标签与您认为它们所做的完全一致:

代码语言:javascript
复制
...
# 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)

**:Matplotlib Legends not working

票数 3
EN

Stack Overflow用户

发布于 2020-07-09 23:10:58

Matplot使用不同的颜色为您的绘图着色,但以防您想要将特定的颜色

代码语言:javascript
复制
    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()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4805048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档