Matplotlib .plot()不会打印所有数据点

时间:2019-11-19 15:37:24

标签: python matplotlib

我已经在列表列表中创建了一些数据,现在我试图使用matplotlib中的.plot将它们全部绘制在折线图中。我有6个小组,每个小组每年有一个数据点,持续10年。我想将所有这6个组随时间绘制在一条线图中。

这是我的代码:

import matplotlib.pyplot as plt
from matplotlib.ticker import StrMethodFormatter


group_data = [[0.019661816751867872, 0.02043028685790527, 0.02023318156674184, 0.017430534194606787, 0.019330407797782608, 0.01969285217721039, 0.020037761795104064, 0.02195322742933805, 0.02104150568005187, 0.023173911874613543],
            [0.046087298466378296, 0.04628085390260173, 0.04816816305689119, 0.05218907002973444, 0.060561320045386814, 0.0625292296024774, 0.0604625274209567, 0.05977172708885976, 0.05898549566113317, 0.06442723875581365],
            [0.015257569799449469, 0.01667778519012675, 0.017148206459299604, 0.015841279606274992, 0.01711575004442986, 0.01660873412121595, 0.01645803092974778, 0.019442835218668374, 0.02056187659321236, 0.019746216092695647],
            [0.1048368069209595, 0.1054869913275517, 0.10197438406876304, 0.0988584708978434, 0.0944373812355603, 0.09515262592428743, 0.09366234843441344, 0.09388053785407202, 0.09037455478874115, 0.0906121461408178],
            [0.1048368069209595, 0.1054869913275517, 0.10197438406876304, 0.0988584708978434, 0.0944373812355603, 0.09515262592428743, 0.09366234843441344, 0.09388053785407202, 0.09037455478874115, 0.0906121461408178],
            [0.1048368069209595, 0.1054869913275517, 0.10197438406876304, 0.0988584708978434, 0.0944373812355603, 0.09515262592428743, 0.09366234843441344, 0.09388053785407202, 0.09037455478874115, 0.0906121461408178]]

years = ['2008','2009','2010','2011','2012','2013','2014','2015','2016','2017']


plt.xlabel('Year')
plt.ylabel('Percentage')

plt.gca().yaxis.set_major_formatter(StrMethodFormatter('{x:,.0%}'))    #formats y axis as %

plt.plot(years, group_data[0], label='Group 1')
plt.plot(years, group_data[1], label='Group 2')
plt.plot(years, group_data[2], label='Group 3')
plt.plot(years, group_data[3], label='Group 4')
plt.plot(years, group_data[4], label='Group 5')
plt.plot(years, group_data[5], label='Group 6')

plt.legend()

运行代码时,结果如下:

enter image description here

我不明白为什么。只有4行而不是6行。第4组和第5组神秘地消失了。

但是,我正在尝试解决此问题,并且如果我仅绘制前4组:

plt.plot(years, group_data[0], label='Group 1')
plt.plot(years, group_data[1], label='Group 2')
plt.plot(years, group_data[2], label='Group 3')
plt.plot(years, group_data[3], label='Group 4')

plt.legend()

一切似乎都是正确的:

enter image description here

如果我只绘制最后两组:

plt.plot(years, group_data[4], label='Group 5')
plt.plot(years, group_data[5], label='Group 6')

plt.legend()

我只有一行:

enter image description here

我正在绘制'group_data'对象。我已经验证了group_data中的所有对象都具有相同的长度(10)。这些列表中的所有数字都是相同的数据类型。

发生了什么事?为什么我只能绘制4条线,而其中似乎没有2条线?

0 个答案:

没有答案