python - 绘制时间太近
问题描述
我的情节将日期时间过于紧密地捆绑在一起。
我有以下代码:
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as md
import matplotlib.dates as mdates
data = {"Date":['2019-2-25 14:24:04', '2019-2-25 14:29:02', '2019-2-20 17:02:14',
'2019-3-25 08:12:54', '2019-3-25 12:32:32'],
"Quiz":[1,2,2,3,4],
"Score":[10,3,7,4,9]}
df = pd.DataFrame.from_dict(data)
df.Date = pd.to_datetime(df.Date)
fig = plt.figure(figsize = (11,9))
ax = fig.add_subplot(111)
ax.set_xticks(df.Date)
ax.xaxis.set_major_formatter(mdates.DateFormatter('%d/%m/%Y %H:%M'))
ax.set_xlabel("Date")
ax.set_ylabel("Score")
ax.plot_date(df.Date, df.Score)
fig.autofmt_xdate(rotation=45)
plt.show()
这是情节:
我想绘制我的数据的日期。但是,某些日期时间太靠近了,我无法找到一种方法将它们均匀地分开。我怎样才能做到这一点?
解决方案
尝试这个:
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as md
import matplotlib.dates as mdates
import datetime as dt
data = {"Date":['2019-2-25 14:24:04', '2019-2-25 14:29:02', '2019-2-20 17:02:14',
'2019-3-25 08:12:54', '2019-3-25 12:32:32'],
"Quiz":[1,2,2,3,4],
"Score":[10,3,7,4,9]}
df = pd.DataFrame.from_dict(data)
xs = df.Date.values
fig, ax = plt.subplots(1)
ax.set_xlabel("Date")
ax.set_ylabel("Score")
ax.plot_date(xs, df.Score)
fig.autofmt_xdate(rotation=45)
plt.show()
主要区别是删除格式化业务并设置 xs = df.Date.values
,然后让图表自己处理格式化fig.autofmt_xdate(rotation=45)
。
推荐阅读
- php - 如何在codeigniter的选择,复选框和单选输入中显示获取的数据?
- r - Dplyr:过滤成对分组数据集,按条件从每对中仅保留一行
- r - 将循环的迭代绑定为 data.frame 中每个 i 的行
- javascript - Javascript:2D 平台,点/线碰撞,处理小数
- three.js - 在 Three.js (A-Frame) 中如何防止音频剪辑?
- html - Firefox 出现奇怪的 Favicon 问题
- redis - 如何使用 Istio 连接到集群外的 Redis?
- javascript - 有没有办法检测用户离开后何时返回您的网页?
- odoo - 在 one2many odoo 12 中获取默认值
- python - 如何动态定义`typing.Union`?