我可以使用循环或列表来减少这个图的代码吗?

2024-09-29 21:54:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一张图上画了几行,我觉得我缺少了一个非常简单的循环,或者一些可以让代码更高效、更容易阅读的东西。你知道吗

我的一个例子是:

alphaline = .4
polydegree = 3

#first iteration
xg1 = np.array(df1.query('wealb == "g"')['income'])
yg1 = np.array(df1.query('wealb == "g"')['cont'])
coefg1 = np.polyfit(xg1, yg1,polydegree)
polyg1 = np.poly1d(coefg1)
ysg1 = polyg1(xg1)
ax5.plot(xg1, ysg1, color="#5FB404", label="1", alpha=alphaline)

#second iteration
xg2 = np.array(df2.query('wealb == "g"')['income'])
yg2 = np.array(df2.query('wealb == "g"')['cont'])
coefg2 = np.polyfit(xg2, yg2, polydegree)
polyg2 = np.poly1d(coefg2)
ysg2 = polyg2(xg2)
ax5.plot(xg2, ysg2, color="#31B404", label="2", alpha=alphaline)

#third iteration
xg3 = np.array(df3.query('wealb == "g"')['income'])
yg3 = np.array(df3.query('wealb == "g"')['cont'])
coefg3 = np.polyfit(xg3, yg3, polydegree)
polyg3 = np.poly1d(coefg3)
ysg3 = polyg3(xg3)
ax5.plot(xg3, ysg3, color="#088A08", label="3", alpha=alphaline)
lg1 = plt.legend(title="Children in College")

我觉得某种for i in range(3)可能会有所帮助,但我对python还是比较陌生,不知道如何实现。我想我可以有一个颜色的数组,然后循环遍历所有的东西。你知道吗

我也一直在玩弄

for i in range(len(x)):
  plt.figure()
  plt.plot(x[i],y[i])

Use a loop to plot n charts Python

我现在的尝试是:

colours = ['r','g','b']
for i in range(3):
    xg[i] = np.array(df[i].query('wealb == "g"')['income'])
    yg[i] = np.array(df[i].query('wealb == "g"')['cont'])
    coefg[i] = np.polyfit(xg[i], yg[i],polydegree)
    polyg[i] = np.poly1d(coefg[i])
    ysg[i] = polyg1(xg[i])
    ax5.plot(xg[i], ysg[i], color=colours[i], label=str[i], alpha=alphaline)

Tags: plotnpqueryarraylabelcolorincomecont

热门问题