为什么使用Pandas的子图不显示x轴

时间:2019-05-27 14:43:45

标签: python pandas dataframe matplotlib plot

当我用熊猫数据框绘制单个图时,我有一个x轴。 但是,当我制作子图并尝试像使用不带熊猫的numpy数组时那样制作共享x轴时,没有数字标签 我只希望数字和标签出现在最后一个绘图上,因为它们共享相同的x轴。

加载的数据和生成的图可以在这里找到: https://drive.google.com/open?id=1hTmTSkIcYl-usv_CCxLl8U6bAoO6tMRh

这是用于组合和绘制从代表同一时间段的两个不同的日志记录设备记录的数据。

import pandas as pd
import matplotlib.pyplot as plt

df1=pd.read_csv('data1.csv', sep=',',header=0)
df1.columns.values
cols1 = list(df1.columns.values)

df2=pd.read_csv('data2.dat', sep='\t',header=18)
df2.columns.values
cols2 = list(df2.columns.values)

start =10000
stop = 30000


fig, axes = plt.subplots(nrows=5, ncols=1, sharex=True, figsize=(10, 10))


df1.iloc[start:stop].plot(x=cols1[0], y=cols1[1], ax=axes[0])
df1.iloc[start:stop].plot(x=cols1[0], y=cols1[2], ax=axes[0])
df1.iloc[start:stop].plot(x=cols1[0], y=cols1[3], ax=axes[2])
df1.iloc[start:stop].plot(x=cols1[0], y=cols1[4], ax=axes[2])
df2.iloc[start:stop].plot(x=cols2[0], y=cols2[3], ax=axes[3])
ax3.set_xlabel("Time [s]")  

plt.show()

我希望x轴上有数字和标签,但只能给熊猫标签“ #timestamp”

更新:我发现了一些提示问题的信息。我认为问题是由于两个文件没有相同的时间间隔,每个文件的第一列是时间,它们大约是每秒1个样本,但不完全相同。如果删除x = cols [x]部分,则它将在x轴上显示数字,但是这两个图之间存在时间偏移,因为它们不是相对于时间而是相对于数据帧中的索引。 我目前正在尝试对数据进行插值,以使它们具有相同的x轴,但我不希望这样做是必需的。

0 个答案:

没有答案