关于用pygal画折线图日期横坐标时间显示问题

利用
N=30
line_chart.x_labels_major = dates[::N]

可以解决X轴每隔30天显示一次输出

有没有方法可以代替这个代码,每一个月显示一次输出呢?
如:2014-1-1,2014-2-1,2014-3-1以此类推

如图图片说明

另外,在此输出之前,定义:
current_date = row[0]x轴显示的是2014-1-1

current_date = datetime.strptime(row[0], "%Y-%m-%d")x轴显示的是2014-1-1 00:00:00,这个是什么回事呢?这个00:00:00后缀能不显示吗?

如图2图片说明

1.x轴只显示每个月1号
在遍历json文件内容的时候,加上个判断,把每个月1号的值放入1个列表里
if btc_dict['date'][-2:]=='01' :
first_day.append(btc_dict['date'])
画折现图的时候,显示x轴刻度那句代码改成: line_chart.x_labels_major = first_day

2.2014-1-1 00:00:00的问题。创建图表的时候,x轴没有说必须要把字符串转化为日期对象啊,可以是字符串。直接取出来复到一个列表里,把列表赋给line_chart.x_labels就可以了。

import pygal
import json

filename = 'btc_close_2017.json'
with open(filename) as f:
    btc_data = json.load(f)

dates = []
months = []
weeks = []
weekdays = []
close = []
first_day = []
for btc_dict in btc_data:
    if btc_dict['date'][-2:]=='01' :
        first_day.append(btc_dict['date'])
    dates.append(btc_dict['date'])
    months.append(int(btc_dict['month']))
    weeks.append(int(btc_dict['week']))
    weekdays.append(btc_dict['weekday'])
    close.append(int(float(btc_dict['close'])))
    print("{} is month {} week {}, {}, the close price is {} RMB".format(btc_dict['date'],btc_dict['month'],btc_dict['week'],btc_dict['weekday'],btc_dict['close']))
print 


line_chart = pygal.Line(x_label_rotation=20,show_minor_x_labels=False)
line_chart.title = '显示每月1日的收盘价¥'
line_chart.x_labels = dates
#N = 20 #每隔20天显示一个x坐标
line_chart.x_labels_major = first_day
line_chart.add('收盘价',close)
line_chart.render_to_file('显示每月1日的收盘价.svg')

图片说明