我已经使用 CSV 文件测试了 matlpotlib,其中 y 和 z 值未按如下方式连接。
我可以使用散点图可视化这些数据,但我无法连接这些点,但最终目标是使用线图创建连接图。为什么它不能用线图可视化?
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv(r'C:\Users\PythonTest\source\file.csv')
ax1 = plt.subplot2grid((1, 1), (0, 0))
x = df.time
y = df.gx
z = df.sp
# ax1.scatter(x, y, color='k', s=0.1)
# ax1.scatter(x, z, color='c', s=0.1)
ax1.plot(x, y, color='k')
ax1.plot(x, z, color='c')
plt.show()
最佳答案
您可以散点图不连续值,但无法绘制不连续值的线,因为 matplotlib 无法神奇地知道您想要在指定值之间包含哪些值。您想将缺失值视为 0 吗?与之前的值一样?还有别的吗?
完成我认为您可能想要的事情的一种方法是删除缺失的值。让我们做一下时间和 gx:
time_gx = df.drop(columns=['sp']).dropna()
plt.plot(time_gx['time'], time_gx['gx'])
plt.xlabel('time')
plt.ylabel('gx')
plt.show()
如果您想将缺失值视为最后指定的值,只需使用 ffill:
df2 = df.ffill()
plt.plot(df2['time'], df2['gx'])
plt.xlabel('time')
plt.ylabel('gx')
plt.show()
关于python - 无法使用线图进行可视化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60180245/