我有一个简单的dataframe与时间作为索引和虚拟值的例子。
我做了一个简单的散点图,如你所见:
简单的问题:如何调整xaxis
,以便从00:00到23:00的所有时间值在xaxis
中可见?图的其余部分很好,它显示了所有的数据点,它只是标签。尝试了不同的方法,但没有成功。
到目前为止,我的代码是:
import pandas as pd
import seaborn as sns
import matplotlib.dates as mdates
from datetime import time
data = []
for i in range(0, 24):
temp_list = []
temp_list.append(time(i))
temp_list.append(i)
data.append(temp_list)
my_df = pd.DataFrame(data, columns=["time", "values"])
my_df.set_index(['time'],inplace=True)
my_df
fig = sns.scatterplot(x=my_df.index, y=my_df['values'])
fig.set(xlabel='time', ylabel='values')
2条答案
按热度按时间wko9yo5t1#
我想你得去matplotlib的水平:
这产生
jjjwad0x2#
我想你有两个选择:
1.转换时间到小时只,为那只是提取小时到新的专栏在您的df
df['hour_'] = datetime.hour
而不是用它作为你的x轴
1.如果您需要所描述格式的时间,则可能会导致可见性问题,其中时间戳将彼此重叠。我正在使用
plt.xticks(rotation=45,horizontalalignment='right')
ax.xaxis.set_major_locator(plt.MaxNLocator(12))
所以首先我旋转文本然后我限制刻度数。
下面是我使用它的完整脚本:
希望我停止