【问题标题】:how do we plot a scatter plot for time in python我们如何在python中绘制时间散点图
【发布时间】:2020-09-24 05:58:51
【问题描述】:

我想在提到的两列 k 和 s 之间绘制散点图。 k 应该在 x 轴上显示 24 小时每小时的时间,s 应该在 y 轴上。我已经使用 sns.relplot 尝试了一些代码,但出现属性错误。

data columns in which we want scatter plot

code which we tried with error

【问题讨论】:

  • 试试sns.relplot(data=data,x='x',y='y')(去掉data周围的撇号)

标签: python pandas time seaborn scatter-plot


【解决方案1】:

试试:

import matplotlib.dates as mdates
from datetime import time
import matplotlib.pyplot as plt
import pandas as pd

df = pd.DataFrame([['2020-05-26 06:15:07','105'], ['2020-05-26 06:15:07','41'], ['2020-05-26 06:16:51','95']], columns=["k", "s"]) 
df.k = pd.to_datetime(df.k, format='%Y-%m-%d %H:%M:%S')
ax = sns.scatterplot(df.k, df.s)
ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y-%m-%d %H:%M:%S"))
ax.tick_params(axis="x", rotation=45)
ax.plot()


import matplotlib.dates as mdates
from datetime import time
import matplotlib.pyplot as plt
df = pd.DataFrame([['2020-05-26 06:15:07','105'], ['2020-05-26 06:15:07','41'], ['2020-05-26 06:16:51','95']], columns=["k", "s"]) 
df.k = pd.to_datetime(df.k, format='%Y-%m-%d %H:%M:%S')

df.set_index(['k'],inplace=True)
ax = sns.scatterplot(df.index, df.s)
# ax.set(xlabel="time", ylabel="values")
ax.set_xlim(df.index[0], df.index[-1])
ax.xaxis.set_major_locator(mdates.HourLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y-%m-%d %H:%M:%S"))
ax.tick_params(axis="x", rotation=45)
ax.plot()

【讨论】:

  • 非常感谢......我正在尝试在 x 轴上获得一天 24 小时,例如 0,1,2,3.....24 可能吗?
  • 是的,这是可能的。使用 mdates
  • @pygril 你能帮帮我吗.. 我不希望 x 轴上的日期只是从 00:00:00 到 23:59:59 的时间
  • 其实我没有你的数据集。但我觉得mdates.DayLocator() 将与ax.xaxis.set_major_locator 一起使用ax.xaxis.set_major_formatter(mdates.DateFormatter("%H:%M:%S"))
  • 使用上面那两个。你会做到的。
猜你喜欢
  • 2017-09-13
  • 2020-09-14
  • 2013-05-12
  • 1970-01-01
  • 2016-03-19
  • 2023-03-15
  • 2011-05-07
  • 2019-09-27
相关资源
最近更新 更多