python - 简单的图形不代表数据

标签 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

代码:

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()

生成的图表是:

graph from CSV data

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

最佳答案

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

修复:将 data.plot() 更改为 data.plot(style='o'),或 df.绘图(标记='o',线宽=0)

结果: result of style='o'

关于python - 简单的图形不代表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52487862/

相关文章:

python - 如何更新 mousemove 上的 matplotlib 图例文本

python - Matplotlib:imshow 中的 set_data 对绘图没有影响

python - 使用 Scapy 模块 (python) 从 pcap 文件获取特定包

Python:如何删除像素注释?

python - 按值对字典列表进行排序

python - 如何在Python中按列分组并按自己的函数汇总

python - 从 CVX 到 CVXPY 或 CVXOPT

pandas - 使用 Pandas 按绝对值对列进行排序

python - Pandas:在每个 id 的一列中第一次出现值后删除行

Python Matplotlib : reduce render time for interactive plot