如何在python中有选择地绘制数据

时间:2015-11-27 02:18:19

标签: python

我正在尝试使用python进行一些数据分析,并且我已成功显示数据。但这个数字存在问题。enter image description here

正如您所看到的,x轴(日期)非常混乱。原因是数据格式类似(每天收集):

2014-12-30,1423.98,1424.16,1407.51,1407.51
2014-12-29,1433.80,1433.84,1409.53,1424.67
...

我将第一行(日期)放在一个数组中,并将该数组用作x轴。

我自己有一个解决方案,那就是当月份发生变化时只输出x轴(比如'2014-11','2014-12',......),但我不知道任何功能可以这样做......

任何人都可以帮我解决我的问题吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

实际上我已经有很多关于这个话题的例子我已经下了赌注。这有点取决于完全你如何获得日期(格式等等)。

如果您没有在这个世界上做过多的事情并且使用viewcontroller - view - scrollview - child views \ - fixed bottom button 模块,那么您可以查看下面的示例。个人经验,定位器和格式化程序的公平警告一旦滴答数量达到很高,就容易受到最奇怪的错误的影响。

datetime

第一个例子,每月和每天。几天的刻度都在那里,我还没有在图表上显示它们。

import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
from datetime import date, timedelta

#####################################
###  Creating data for plot, 
###  PLEASE include this in your next question.
#####################################
times = []
startdate = date(2014, 1, 1)
enddate = date(2016, 12, 22)
while startdate < enddate:
    times.append(startdate)
    startdate += timedelta(days=1) 

x = []
for i in range(0, len(times)):
    x.append(np.random.random(10))

Locators on Month and Day basis

第二个例子就是这样的,每年都有一个更详细的&#34;详细的&#34;格式化。

months = mpl.dates.MonthLocator()
days = mpl.dates.DayLocator(1) #find every 1st day of month
monthsFormatter = mpl.dates.DateFormatter('%b')

fig, ax = plt.subplots()

ax.xaxis.set_major_locator(months)
ax.xaxis.set_major_formatter(monthsFormatter)
ax.xaxis.set_minor_locator(days)

ax.plot(times, x)

plt.show()

看起来像:

Years and Month Locators, with formatter