为什么用 pyplot 打印出来的图片日期是 3 个月一个间隔?而不是每个月

2018-03-29 15:43:54 +08:00
 evin
import csv
import matplotlib.pyplot as plt
from datetime import datetime

filename = 'death_valley_2014.csv'
with open(filename) as f:
    reader = csv.reader(f)
    header_row = next(reader)
    highs,dates,lows = [],[],[]
    for item in reader:
        try:
            time = datetime.strptime(item[0],'%Y-%m-%d')
            dates.append(time)
            high = item[1]
            low = item[3]
        except ValueError:
            print(time,"missing data")
        else:
            highs.append(high)
            lows.append(low)
fig = plt.figure(dpi=128,figsize = (18,10))
plt.plot(dates,highs,c='red')
plt.plot(dates,lows,c='blue')
plt.fill_between(dates,highs,lows,facecolor="blue",alpha=0.1)
plt.show()

dates 这个 list 中是 1 月到 12 月,但是 x 轴只显示 1、3、5、7、9、11 怎么让他每个都显示?

2057 次点击
所在节点    Python
4 条回复
445141126
2018-03-29 16:15:05 +08:00
`plt.xticks(dates)` ?
evin
2018-03-29 17:01:50 +08:00
@445141126 不行,下面的日期重叠在一起了 显示了 2 次
NoAnyLove
2018-04-01 12:28:25 +08:00
1 楼正解,你只需要调整一下参数就行
NoAnyLove
2018-04-01 12:33:16 +08:00
想一想反正都说到这儿了,就举个例子吧,

```
locs = np.arange('2018-01-01', '2019-01-01', dtype='datetime64[M]')
xticks(locs, locs, rotation=45)
```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/442526

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX