当前位置:  开发笔记 > 编程语言 > 正文

python matplotlib在x轴上设置年份

如何解决《pythonmatplotlib在x轴上设置年份》经验,为你挑选了1个好方法。

我已经用matplotlib编写了以下程序,以图形显示随时间变化的元素数量。

import pylab
import numpy as np
import datetime
from matplotlib.dates import YearLocator, MonthLocator, DateFormatter

date1 = datetime.date(1995, 1, 1)
date2 = datetime.date(2004, 4, 12)

years = YearLocator()   # every year
months = MonthLocator()  # every month
yearsFmt = DateFormatter('%Y')

ax.xaxis.set_major_locator(years)
ax.xaxis.set_major_formatter(yearsFmt)
ax.xaxis.set_minor_locator(months)
ax.autoscale_view()

pylab.ylim(0, 250)
plt.yticks(np.linspace(0,250,6,endpoint=True))

pylab.xlabel('YEAR')
pylab.ylabel('No. of sunspots')
pylab.title('SUNSPOT VS YEAR GRAPH')

a=[[50,50],[100,100],[250, 250],[200,200],[150,150]]
plt.plot(*zip(*a), marker='o', color='r', ls='')

输出如下

但是,我希望它在x轴上显示年份而不是数字。



1> pneumatics..:

正在绘制年份,但是年份分别a是50、100、250、200 和150。这些是内的列表中的第一个元素,这些元素作为x值传递到pyplot.plot 。

您可能想在某个位置定义日期,尽管您可能还希望将其设置xticks为与要绘制的日期相同,因为我可以告诉您关心的图表看起来很整洁。

import pylab
import numpy as np
import datetime
from matplotlib.dates import YearLocator, MonthLocator, DateFormatter

另外,别忘了导入 pyplot

import matplotlib.pyplot as plt

这是一些示例日期。您可以将它们更改为太阳黑子测量的确切日期。

a=[[datetime.date(1995, 1, 1),  50],
   [datetime.date(2000, 1, 1), 100],
   [datetime.date(2005, 1, 1), 250],
   [datetime.date(2010, 1, 1), 200],
   [datetime.date(2015, 1, 1), 150]
  ]

years = YearLocator()   # every year
months = MonthLocator()  # every month
yearsFmt = DateFormatter('%Y')

gca在修改轴之前先调用以获取当前轴。

ax = plt.gca()
ax.xaxis.set_major_locator(years)
ax.xaxis.set_major_formatter(yearsFmt)
ax.xaxis.set_minor_locator(months)
ax.autoscale_view()

pylab.ylim(0, 250)
plt.yticks(np.linspace(0,250,6,endpoint=True))

a数组中选择日期以将其用作xtick标签。

dates = [date for date,sunspot in a]
plt.xticks(dates)

pylab.xlabel('YEAR')
pylab.ylabel('No. of sunspots')
pylab.title('SUNSPOT VS YEAR GRAPH')

plt.plot(*zip(*a), marker='o', color='r', ls='')
plt.show()

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有