Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 简单图不表示数据_Python_Pandas_Matplotlib - Fatal编程技术网

Python 简单图不表示数据

Python 简单图不表示数据,python,pandas,matplotlib,Python,Pandas,Matplotlib,这是一个非常直截了当的问题。我有和x轴的年数和y轴的数,线性增加100。当用pandas和matplotlib绘制此图时,我得到了一个不代表任何数据的图形。我需要一些帮助来解决这个问题,因为它的代码量非常小: CSV如下所示: A,B 2012,100 2013,200 2014,300 2015,400 2016,500 2017,600 2018,700 2012,800 2013,900 2014,1000 2015,1100 2016,1200 2017,1300 2018,1400

这是一个非常直截了当的问题。我有和x轴的年数和y轴的数,线性增加100。当用pandas和matplotlib绘制此图时,我得到了一个不代表任何数据的图形。我需要一些帮助来解决这个问题,因为它的代码量非常小:

CSV如下所示:

A,B
2012,100
2013,200
2014,300
2015,400
2016,500
2017,600
2018,700
2012,800
2013,900
2014,1000
2015,1100
2016,1200
2017,1300
2018,1400
守则:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

data = pd.read_csv("CSV/DSNY.csv")

data.set_index("A", inplace=True)


data.plot()
plt.show()
由此得出的图表为:


这显然与数据非常不一致-有什么建议吗?

您只需在绘图前进行排序即可

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

data = pd.read_csv("CSV/DSNY.csv").reset_index()
data = data.sort_values('A')
data.set_index("A", inplace=True)


data.plot()
plt.show()

您只需在打印前对A进行排序即可

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

data = pd.read_csv("CSV/DSNY.csv").reset_index()
data = data.sort_values('A')
data.set_index("A", inplace=True)


data.plot()
plt.show()

matplotlib/pandas的默认行为是在连续数据点之间绘制一条线,而不是用符号标记每个数据点

修复:
data.plot()
更改为
data.plot(style='o')
,或
df.plot(marker='o',linewidth=0)

结果:

matplotlib/pandas的默认行为是在连续数据点之间绘制一条线,而不是用符号标记每个数据点

修复:
data.plot()
更改为
data.plot(style='o')
,或
df.plot(marker='o',linewidth=0)

结果:

它绝对代表数据。
A
A是字符串吗?时间轴(A)数据不是单调的……它从2018年跳回到2012年,并采用不同的B值集。你可以试着按时间顺序对数据点进行排序,但绘图看起来仍然很奇怪,它绝对代表了数据。
A
A是字符串吗?时间轴(A)数据不是单调的……它从2018年跳回到2012年,并采用不同的B值集。您可以尝试按时间顺序对数据点进行排序,但绘图看起来仍然很奇怪。这会生成一个锯齿形图案,其中包含垂直段,而OP可能不需要这些垂直段。我认为解决方案是抑制线条,并添加一个带有
df.plot(style='o')
的标记符号。这会产生一个锯齿形图案,其垂直段可能不是OP想要的。我认为解决方案是抑制线条并添加带有
df.plot(style='o')
的标记符号。