Python 使用pandas和matplotlib.pyplot,我如何成功地绘制具有~25k个点的csv文件?

Python 使用pandas和matplotlib.pyplot,我如何成功地绘制具有~25k个点的csv文件?,python,pandas,matplotlib,Python,Pandas,Matplotlib,在读取csv文件并将其导入数据帧后,我将尝试分别绘制两列(总共约25k个点)。到目前为止,我有以下代码: import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv(r'/Users/ephemeralhappiness/Desktop/Path/Data Example.csv') df = pd.DataFrame(data, columns=['Displacement Into Surface', 'Lo

在读取csv文件并将其导入数据帧后,我将尝试分别绘制两列(总共约25k个点)。到目前为止,我有以下代码:

import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv(r'/Users/ephemeralhappiness/Desktop/Path/Data Example.csv')
df = pd.DataFrame(data, columns=['Displacement Into Surface', 'Load On Sample'])
a = df.loc[0, 'Displacement Into Surface']
b = df.loc[0, 'Load On Sample']
df = df.drop([0])
x = df['Load On Sample']
y = df['Displacement Into Surface']
plt.scatter(x, y)
plt.xlabel('Load On Sample')
plt.ylabel('Displacement Into Surface')
plt.gca().set_xticks([0, 500000000, 1000000000, 1500000000, 2000000000, 2500000000])
plt.gca().set_yticks([-1500, 0, 1500, 3000, 4500, 6000])
plt.show()
以下是运行图时的图像(顺便说一句,在PyView中):


下面是指向示例数据文件的链接:

您可以使用熊猫绘图库

df.plot()

您的数据有两个标题行。由于第二个标题仅为单位,您可以跳过它:

df = pd.read_csv('/home/quang/Downloads/Data Example.csv', skiprows=[1])

# plot the data:
df.plot(x='Load On Sample', y='Displacement Into Surface' )
输出:

输出

您的数据未设置为浮点64。行中混合的数据类型-字符串(单位)和浮点-使其变得困难但可能


我希望我的代码解决了您的问题。

是的,这是有道理的……我删除第一行的原因是,我可以先将单位保存到变量中,以便以后使用。但是,当我将x和y绘制为点时,图形会变得非常扭曲。有什么想法吗?@ephemeralhappy您的代码显示
scatter
。您可能需要将
.plot(
替换为
.plot.scatter)(
。否则,代码只显示您的数据。我认为这是有意义的。因此,我更改了代码,以像您一样合并pandas plotting library。但如何实际显示图形?我在PyCharm上的SciView在运行您的绘图代码时不会显示任何内容。我是否遗漏了一些内容?我使用pandas plotting library基本上得到了相同的结果y对matplotlib.pyplot.抱歉,我认为值得一试。我没有时间玩示例数据帧。不用担心。我会查看绘图库。
import pandas as pd
import matplotlib.pyplot as plt

# read csv
df = pd.read_csv('data.csv')

# units
a = df.loc[0, 'Displacement Into Surface']
b = df.loc[0, 'Load On Sample']

# skip first row
df = df.loc[df.index > 0]

# reset index - start with 0
df = df.reset_index(drop=True)

# change datatype to float
df = df.astype('float64')

# plotting a scatter-plot
plt.scatter(y=df['Displacement Into Surface'], x=df['Load On Sample'])
plt.show()