选项1:x轴datetime
类型
回答
我想你的数据在一个名为data.csv
. 如果使用 加载,则pd.read_csv
需要注意'Time'
列的格式。查看以下输出:
print(graphdf.info())
如果该DType
列'Time'
的 是object
,pandas
则将该列的值标识为str
。在这种情况下,您需要将它们转换为datetime
:
graphdf['Time'] = pd.to_datetime(graphdf['Time'], format = '%H:%M')
最后,您可以设置您在 x 轴上看到的标签的格式:
ax.xaxis.set_major_formatter(md.DateFormatter('%H:%M'))
检查此答案以供参考。
整个代码
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as md
graphdf = pd.read_csv('data.csv')
graphdf['Time'] = pd.to_datetime(graphdf['Time'], format = '%H:%M')
fig, ax = plt.subplots()
ax.plot(graphdf['Time'],graphdf['Price'],color='red')
plt.xticks(rotation=90)
ax.xaxis.set_major_formatter(md.DateFormatter('%H:%M'))
plt.show()
阴谋
选项2:x轴str
类型
回答
如果您不希望 x 轴作为一般%H:%M
时间轴,但您想保留原始刻度,则必须将 x 轴作为一种str
类型并简单地对原始刻度进行采样,然后将它们应用于轴:
xticks = graphdf['Time'][::2]
ax.set_xticks(xticks)
您可以用切片原始刻度[::n]
,步骤在哪里n
。如果n = 2
您选择替代刻度;如果n = 3
您每 3 次选择一个刻度,依此类推。
整个代码
import pandas as pd
import matplotlib.pyplot as plt
graphdf = pd.read_csv('data.csv')
fig, ax = plt.subplots()
ax.plot(graphdf['Time'],graphdf['Price'],color='red')
plt.xticks(rotation=90)
xticks = graphdf['Time'][::2]
ax.set_xticks(xticks)
plt.show()
阴谋