这只是生成示例可视化的示例代码:
# Importing necessary libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import datetime
from dateutil.parser import parse
%matplotlib inline
# Below, I just convert date strings into an actual date object.
date_strings = ['2020-01-20 03:32:44',
'2020-03-26 05:13:07',
'2020-03-26 13:32:09',
'2020-03-26 23:57:49',
'2020-03-27 15:30:00',
'2020-03-28 00:04:32',
'2020-03-28 13:26:15',
'2020-03-29 00:11:22',
'2020-04-02 00:30:00',
'2020-04-06 14:00:00']
dates = []
for date in date_strings:
dt = parse(date)
print(dt.date())
dates.append(dt.date())
# finally making the graph:
x1 = np.array([x for x in range(10)])
x = dates
y = [x+60 for x in range(10)]
plt.xticks(ticks=dates,labels=dates,rotation='30')
plt.plot(x,y)
plt.scatter(x,y)
plt.show()
我得到的是:
现在这很棘手,因为大多数传统的固定方法包括在中间包含随机的数据点。例如,2月15日可能会突然出现勾号标签但是,我不想在没有实际记录数据点的地方包含勾号标签
基本上,对于我的要求,条件似乎有点严格:
这是我试图解决的问题
免责声明,可能有更好的方法来做到这一点,我只是把一些东西放在一起,看看是否可以减少一些混乱。我不完全理解代码,但我确实实现了一个结果
尽管如此,我还是用这个post提出了一个解决方案,它可以作为有用的资源,更好地解释我的想法
解决方案代码
结果图
Uncluttered graph with space between x-axis ticks
注意事项
更改right参数将更改x记号的间距。但是,当前的实现需要权衡:
准确性及;间距与图像宽度
数字越小,图像空间占用的宽度越小。但是,图像会失去准确性&;表示打印点的间距
我发现25是一个不错的数字,但代价是昂贵的图像宽度。我不确定这是否会成为一个问题,但我想我会提到它
如果单独更改,则对图像宽度的影响很小
数字越小,图像的宽度越小
[R]otation影响图形的间距,类似于right参数
数字越接近与x轴平行,精确度越差&;间距,较便宜的图像宽度
数字越接近与y轴平行,精确度和;间距越大,图像宽度越昂贵
据我所知,原始代码中有30个参数用于旋转。我不确定在解决方案中维护这一点是否重要,但我想我会提到这一点
我希望这有帮助
相关问题 更多 >
编程相关推荐