java 图片线条_如何在一个图中为不同的图形获得不同的彩色线条?

这篇博客介绍了如何使用Python的Matplotlib库绘制多条曲线,并进行颜色控制和图例设置。通过示例代码,展示了如何设置颜色循环、添加图例以及在图上放置多个线性函数的曲线。还探讨了在同一个图表中绘制过多线条可能导致的可读性问题,并提供了处理大量线条的建议。
摘要由CSDN通过智能技术生成

Matplotlib默认执行此操作 .

例如 . :

import matplotlib.pyplot as plt

import numpy as np

x = np.arange(10)

plt.plot(x, x)

plt.plot(x, 2 * x)

plt.plot(x, 3 * x)

plt.plot(x, 4 * x)

plt.show()

4cbf268e-4fa6-462f-bdd1-f78eb5dc49ec.png

而且,正如您可能已经知道的那样,您可以轻松添加图例:

import matplotlib.pyplot as plt

import numpy as np

x = np.arange(10)

plt.plot(x, x)

plt.plot(x, 2 * x)

plt.plot(x, 3 * x)

plt.plot(x, 4 * x)

plt.legend(['y = x', 'y = 2x', 'y = 3x', 'y = 4x'], loc='upper left')

plt.show()

eb88f471-c82f-4599-bcfb-6a7e9bbbccc5.png

如果要控制将循环的颜色:

import matplotlib.pyplot as plt

import numpy as np

x = np.arange(10)

plt.gca().set_color_cycle(['red', 'green', 'blue', 'yellow'])

plt.plot(x, x)

plt.plot(x, 2 * x)

plt.plot(x, 3 * x)

plt.plot(x, 4 * x)

plt.legend(['y = x', 'y = 2x', 'y = 3x', 'y = 4x'], loc='upper left')

plt.show()

71edaa9c-fe9c-4b59-b588-b925abc164e5.png

Edit:

首先,如果你想要在一个数字上绘制很多(> 5)的东西,可以:

将它们放在不同的图上(考虑在一个图上使用一些子图),或

使用颜色以外的其他颜色(即标记样式或线条粗细)来区分它们 .

否则,你将陷入一个非常混乱的阴谋!很高兴谁会读到你想要将15种不同的东西塞进一个人物中的任何东西!

除此之外,许多人在不同程度上都是色盲,区分众多微妙不同的颜色对于更多的人来说比你可能意识到的要困难 .

话虽如此,如果你真的想在一个轴上放20条线,并且有20种相对不同的颜色,这是一种方法:

import matplotlib.pyplot as plt

import numpy as np

num_plots = 20

# Have a look at the colormaps here and decide which one you'd like:

# http://matplotlib.org/1.2.1/examples/pylab_examples/show_colormaps.html

colormap = plt.cm.gist_ncar

plt.gca().set_color_cycle([colormap(i) for i in np.linspace(0, 0.9, num_plots)])

# Plot several different functions...

x = np.arange(10)

labels = []

for i in range(1, num_plots + 1):

plt.plot(x, i * x + 5 * i)

labels.append(r'$y = %ix + %i$' % (i, 5*i))

# I'm basically just demonstrating several different legend options here...

plt.legend(labels, ncol=4, loc='upper center',

bbox_to_anchor=[0.5, 1.1],

columnspacing=1.0, labelspacing=0.0,

handletextpad=0.0, handlelength=1.5,

fancybox=True, shadow=True)

plt.show()

d6ddfdf8-51a4-4fb6-bf5e-cc91eb98333a.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值