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')