首页 > 解决方案 > 如何消除使用 pandas 和 matplotlib 运行脚本时出现的对角线?

问题描述

我遇到过这种类似的情况:matplotlib plot 显示了一条不必要的对角线 ,但是它对我没有帮助,因为我是从 csv 文件而不是数据数组生成我的图。这是我的代码:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv(r"C:\Users\HP\OneDrive\Desktop\MPGES-1\Computational_work\MD\rmsd-yeni-utf-modifiye.csv", sep=";")

df.plot(kind="line", color="red", title="rmsd", xlabel="time", ylabel="freq")

plt.plot(df)
plt.show()

我附上 csv 文件开头的图表和屏幕截图。

图形 屏幕截图-csv 文件

很快,我只想消除图中看到的对角线,因为图表的其余部分似乎很好。

谢谢,

标签: pythonplotgraph

解决方案


Pandasread_csv从您的 csv 文件中推断出标题行,并且在您的示例中错误地绘制了 x/y 列。

由于您的 csv 文件没有标题行,您可以使用names下面的设置在导入期间定义一个并使用列名来绘制x='time', y='freq'

import matplotlib.pyplot as plt
import pandas as pd
    
df = pd.read_csv(r"C:\Users\HP\OneDrive\Desktop\MPGES-1\Computational_work\MD\rmsd-yeni-utf-modifiye.csv", sep=";", names=['time', 'freq'])
df.plot(kind="line", color="red", title="rmsd", xlabel="time", ylabel="freq", x='time', y='freq')

plt.show()

或者,您可以header=None在读取 csv 时设置并使用索引进行绘图x=0,y=1

df = pd.read_csv(r"C:\Users\HP\OneDrive\Desktop\MPGES-1\Computational_work\MD\rmsd-yeni-utf-modifiye.csv", sep=";", header=None)
df.plot(kind="line", color="red", title="rmsd", xlabel="time", ylabel="freq",x=0,y=1)
plt.show()

或者作为第三个修复,您可以考虑向数据集添加标题行

在此处输入图像描述

并绘制让熊猫使用第一行作为列名的标题

df = pd.read_csv(r"C:\Users\HP\OneDrive\Desktop\MPGES-1\Computational_work\MD\rmsd-yeni-utf-modifiye.csv", sep=";")
df.plot(kind="line", color="red", title="rmsd", xlabel="time", ylabel="freq",x="time",y="freq")
plt.show()

使用不同数据的示例图 在此处输入图像描述

https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html


推荐阅读