700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python画散点图带直线和图例_带图例的Matplotlib散点图

python画散点图带直线和图例_带图例的Matplotlib散点图

时间:2019-01-10 22:59:05

相关推荐

python画散点图带直线和图例_带图例的Matplotlib散点图

有两种方法。其中一个给你每一个你策划的东西的图例条目,另一个让你把你想要的东西放在图例中,从this答案中大量窃取。

第一种方法是:import matplotlib.pyplot as plt

import numpy as np

x = np.linspace(-1,1,100)

fig = plt.figure()

ax = fig.add_subplot(1,1,1)

#Plot something

ax.plot(x,x, color='red', ls="-", label="$P_1(x)$")

ax.plot(x,0.5 * (3*x**2-1), color='green', ls="--", label="$P_2(x)$")

ax.plot(x,0.5 * (5*x**3-3*x), color='blue', ls=":", label="$P_3(x)$")

ax.legend()

plt.show()

ax.legend()函数有不止一个用途,第一个用途是根据axes对象中的行创建图例,第二个用途是手动控制条目,本文将对其进行描述。

您基本上需要给图例提供行句柄和相关的标签。

另一种方法是,通过创建Artist对象和标签,并将它们传递给ax.legend()函数,您可以在图例中放置所需的任何内容。你可以用它只把你的一些线放在传说中,或者你可以用它把你想要的东西放在传说中。import matplotlib.pyplot as plt

import numpy as np

x = np.linspace(-1,1,100)

fig = plt.figure()

ax = fig.add_subplot(1,1,1)

#Plot something

p1, = ax.plot(x,x, color='red', ls="-", label="$P_1(x)$")

p2, = ax.plot(x,0.5 * (3*x**2-1), color='green', ls="--", label="$P_2(x)$")

p3, = ax.plot(x,0.5 * (5*x**3-3*x), color='blue', ls=":", label="$P_3(x)$")

#Create legend from custom artist/label lists

ax.legend([p1,p2], ["$P_1(x)$", "$P_2(x)$"])

plt.show()

或者在这里,我们创建新的Line2D对象,并将它们赋给图例。import matplotlib.pyplot as pltit|delete|flag

import numpy as np

import matplotlib.patches as mpatches

x = np.linspace(-1,1,100)

fig = plt.figure()

ax = fig.add_subplot(1,1,1)

#Plot something

p1, = ax.plot(x,x, color='red', ls="-", label="$P_1(x)$")

p2, = ax.plot(x,0.5 * (3*x**2-1), color='green', ls="--", label="$P_2(x)$")

p3, = ax.plot(x,0.5 * (5*x**3-3*x), color='blue', ls=":", label="$P_3(x)$")

fakeLine1 = plt.Line2D([0,0],[0,1], color='Orange', marker='o', linestyle='-')

fakeLine2 = plt.Line2D([0,0],[0,1], color='Purple', marker='^', linestyle='')

fakeLine3 = plt.Line2D([0,0],[0,1], color='LightBlue', marker='*', linestyle=':')

#Create legend from custom artist/label lists

ax.legend([fakeLine1,fakeLine2,fakeLine3], ["label 1", "label 2", "label 3"])

plt.show()

我还尝试使用patches使该方法工作,如matplotlib图例指南页上的那样,但它似乎不工作,所以我放弃了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。