def calendar_base(): begin = datetime.date(2017, 1, 1) end = datetime.date(2017, 12, 31) data = [[ str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000) ] for i in range((end - begin).days + 1)] c = ( Calendar().add( "", data, calendar_opts=opts.CalendarOpts(range_="2017")).set_global_opts( title_opts=opts.TitleOpts(title="Calendar-2017年微信步数情况"), # 显示工具类 toolbox_opts=opts.ToolboxOpts(orient="horizontal", pos_left="80%"), visualmap_opts=opts.VisualMapOpts( max_=25000, min_=500, orient="horizontal", is_piecewise=True, pos_top="230px", pos_left="100px", ), )) return c
def calendar_base() -> Calendar: begin = datetime.date(2018, 1, 1) #设置起始日期 end = datetime.date(2019, 12, 31) #设置终止日期 data = [ [str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)] #设置日期间隔,步数范围 for i in range((end - begin).days + 1) ] c = ( Calendar().add('', data, calendar_opts=opts.CalendarOpts( range_='2019')) #添加到日历图,指定显示2019年数据 .set_global_opts( #设置底部显示条,解释数据 title_opts=opts.TitleOpts(title='2019年微信步数的情况', subtitle='From Weix'), visualmap_opts=opts.VisualMapOpts( max_=20000, min_=500, orient='vertical', #设置垂直显示 pos_top='230px', pos_left='100px', is_piecewise=True #是否连续 ))) return c.render('charts1.html')
def calendar_base(): # 创建数据 begin = datetime.date(2017, 1, 1) # 输出结果2017-01-01 end = datetime.date(2017, 12, 31) # 输出结果2017-12-31 # 生成日期和对应的数据,日期是字符串,数据是int data = [[ str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000) ] for i in range((end - begin).days + 1)] # 绘制日历图 calendar = ( # 日历图实例 Calendar() # 添加数据 .add("", data, calendar_opts=opts.CalendarOpts(range_="2017")) # 设置全局配置 .set_global_opts( title_opts=opts.TitleOpts(title="Calendar-2017年微信步数情况"), visualmap_opts=opts.VisualMapOpts( max_=20000, min_=500, orient="horizontal", is_piecewise=True, pos_top="230px", pos_left="100px", ), )) return calendar
def calendar_base() -> Calendar: begin = datetime.date(2017, 1, 1) end = datetime.date(2017, 12, 31) # [['2017-01-01', 3109], ['2017-01-02', 15849], ['2017-01-03' data = [[ str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000) ] for i in range((end - begin).days + 1)] # print(np.shape(data)) # print(data) c = ( Calendar().add( "2017", data, calendar_opts=opts.CalendarOpts(range_="2017")).set_global_opts( title_opts=opts.TitleOpts(title="Calendar-2017年微信步数情况"), visualmap_opts=opts.VisualMapOpts( max_=20000, min_=500, orient="horizontal", # 图标是横放还是竖放 is_piecewise=True, # 拆不拆分图标 pos_top="230px", pos_left="100px", ), )) return c
def genCalendar(self,data = None, year='2017',title='Calendar示例',subtitle =''): ''' 日历表 param year 指定的年的日历 param data 日期和统计的数量 [('2020-01-01',300),('2020-01-02',200)] ''' if not data: import random begin = datetime.date(2017, 1, 1) end = datetime.date(2017, 12, 31) data = [ [str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)] for i in range((end - begin).days + 1) ] c = ( Calendar() .add("", data, calendar_opts=opts.CalendarOpts(range_=year)) .set_global_opts( title_opts=opts.TitleOpts(title=title,subtitle=subtitle), visualmap_opts=opts.VisualMapOpts( max_=10000, min_=0, orient="horizontal", is_piecewise=True, pos_top="230px", pos_left="100px", ), ) ) c.render() chart_name = f'static/chart{self.index}_calendar' make_snapshot(snapshot,c.render(f'{chart_name}.html'),f'{chart_name}.png',is_remove_html=True) self.index += 1
def calendar_plot(df): """[summary] Parameters ---------- df : [type] [description] """ #begin = datetime.date(2020, 2, 9) #end = datetime.date(2020,11,11) begin = df.Fecha.min() end = df.Fecha.max() c = ( Calendar(init_opts=opts.InitOpts(width="1000px", height="300px")) .add( series_name="", yaxis_data=[[str(x),y] for x,y in zip(df.Fecha, df['Nuevos casos'])], calendar_opts=opts.CalendarOpts( pos_top="120", pos_left="30", pos_right="30", range_="2020", yearlabel_opts=opts.CalendarYearLabelOpts(is_show=False), ), ) .set_global_opts( title_opts=opts.TitleOpts(pos_top="20", pos_left="center", title="2020: Evolución del Covid19 en Andalucía"), visualmap_opts=opts.VisualMapOpts( max_=df['Nuevos casos'].max(), min_=0, orient="horizontal", is_piecewise=False ), ) ) st_pyecharts(c)
def News_num_per_day(): records3 = collection1.find({}) for record3 in records3: time = record3['time'].split(' ') for day in range(1, 32): if day < 10: date = '07-0%d' % day else: date = '07-%d' % day if date == time[0]: date_final[day - 1] += 1 print(date_final) begin = datetime.date(2019, 7, 1) end = datetime.date(2019, 7, 31) data3 = [[str(begin + datetime.timedelta(days=i)), date_final[i]] for i in range((end - begin).days + 1)] calendar = (Calendar( init_opts=opts.InitOpts(width='600px', height='800px')).add( "", data3, calendar_opts=opts.CalendarOpts( range_=['2019-06-01', '2019-08-31'])).set_global_opts( title_opts=opts.TitleOpts(title="2019年7月每日发布转会新闻数量", pos_left='15%'), visualmap_opts=opts.VisualMapOpts( max_=120, min_=0, orient="horizontal", is_piecewise=False, pos_top="230px", pos_left="100px", pos_right="10px")).render('日期热力图.html'))
def calendar_label_setting() -> Calendar: begin = datetime.date(2017, 1, 1) end = datetime.date(2017, 12, 31) data = [[ str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000) ] for i in range((end - begin).days + 1)] c = (Calendar().add( "", data, calendar_opts=opts.CalendarOpts( range_="2017", daylabel_opts=opts.CalendarDayLabelOpts(name_map="cn"), monthlabel_opts=opts.CalendarMonthLabelOpts(name_map="cn"), ), ).set_global_opts( title_opts=opts.TitleOpts(title="Calendar-2017年微信步数情况(中文 Label)"), visualmap_opts=opts.VisualMapOpts( max_=20000, min_=500, orient="horizontal", is_piecewise=True, pos_top="230px", pos_left="100px", ), )) return c
def test_calendar_base(fake_writer): begin = datetime.date(2017, 1, 1) end = datetime.date(2017, 12, 31) data = [ [str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)] for i in range((end - begin).days + 1) ] c = ( Calendar() .add("", data, calendar_opts=opts.CalendarOpts(range_="2017")) .set_global_opts( visualmap_opts=opts.VisualMapOpts( max_=20000, min_=500, orient="horizontal", is_piecewise=True, pos_top="230px", pos_left="100px", ) ) ) c.render() _, content = fake_writer.call_args[0] assert_equal(c.theme, "white") assert_equal(c.renderer, "canvas")
def calendar_base() -> Calendar: begin = datetime.date(2020, 1, 19) #设置起始日期 end = datetime.date(2020, 5, 19) #设置终止日期 n = "dataSets\\countrydata.csv" data = pd.read_csv(n) data = data[data['countryName'] == country_name] date_list = list(data['dateId']) date_list = list(map(lambda x: str(x), date_list)) confirm_list = list(data['confirmedIncr']) data = [ [str(begin + datetime.timedelta(days=i)), confirm_list[i]] #设置日期间隔,步数范围 for i in range((end - begin).days - 3) ] print(len(data)) c = ( Calendar().add('', data, calendar_opts=opts.CalendarOpts( range_=['2020-1', '2020-6'])) #添加到日历图,指定显示2019年数据 .set_global_opts( #设置底部显示条,解释数据 title_opts=opts.TitleOpts(title='全国疫情每日新增确诊病例日历图', subtitle='From Weix'), visualmap_opts=opts.VisualMapOpts( pieces=[ { 'min': 13000, 'color': '#7f1818' }, #不指定 max { 'min': 1000, 'max': 10000 }, { 'min': 500, 'max': 999 }, { 'min': 100, 'max': 499 }, { 'min': 10, 'max': 99 }, { 'min': 0, 'max': 9 } ], orient='vertical', #设置垂直显示 pos_top='230px', pos_left='100px', is_piecewise=True #是否连续 ))) return c
def get(self): begin = datetime.date(2020, 1, 1) end = datetime.date(2020, 12, 31) uu_id = self.get_argument('uuid', None) accesslist = self.session.query( func.date_format(ShorturlOverview.short_url_createTime, '%Y-%m-%d').label('date'), func.count(ShorturlOverview.short_url_id)).filter( ShorturlOverview.short_url == ShortUrlInfo.short_code).filter( ShortUrlInfo.uuid == uu_id).group_by('date').order_by( 'date').all() data = [] for d in accesslist: clist_item = [] clist_item.append(d[0]) clist_item.append(d[1]) data.append(clist_item) calendar = Calendar() calendar.add( '', data, calendar_opts=opt.CalendarOpts( range_='2020', daylabel_opts=opt.CalendarDayLabelOpts(name_map='en'), monthlabel_opts=opt.CalendarMonthLabelOpts(name_map='en'), ), ) calendar.set_global_opts( title_opts=opt.TitleOpts( title='Calendar - The number of clicks per day in 2020'), visualmap_opts=opt.VisualMapOpts( max_=200, min_=1, orient="horizontal", is_piecewise=True, pos_top="230px", pos_left="100px", ), ) calendar.render(path=settings['template_path'] + '/calendar.html', encoding='utf-8') self.render('calendar.html')
def calendar_draw() -> Calendar: begin = datetime.date(2019, 1, 1) end = datetime.date(2019, 12, 27) data = [[str(begin + datetime.timedelta(days=i)), random.randint(1000,25000)] for i in range(0, (end - begin).days + 1, 2) #隔天统计 ] calendar = (Calendar(init_opts=opts.InitOpts(width="1200px")) .add("", data, calendar_opts=opts.CalendarOpts(range_="2019")) .set_global_opts(title_opts=opts.TitleOpts(title="Calendar-2019 年步数统计"), visualmap_opts=opts.VisualMapOpts(max_=25000, min_=1000, orient="horizontal", is_piecewise=True, pos_top="230px", pos_left="100px",), ) ) return calendar
def calendar_base() -> Calendar: c = (Calendar().add( "", data, calendar_opts=opts.CalendarOpts( range_=['2020-01-01', '2020-02-15'])).set_global_opts( title_opts=opts.TitleOpts(title="20年1月至今热搜次数"), visualmap_opts=opts.VisualMapOpts( max_=7000000, min_=1, orient="horizontal", is_piecewise=False, pos_top="230px", pos_left="100px", ), )) return c
def calendar_base(self) -> Calendar: start = datetime.datetime.now() begin = get_date(365) end = datetime.date.today() - timedelta(days=465) data = [] cur_day = end count = 0 for event in self.event_list: if event.create_time < cur_day: data.insert(0, (cur_day, count)) count = 0 cur_day -= timedelta(days=1) if cur_day < begin: break if event.create_time == cur_day: count += 1 c = ( Calendar() .add("", data, calendar_opts=opts.CalendarOpts( range_=[begin, end], daylabel_opts=opts.CalendarDayLabelOpts(name_map="cn"), monthlabel_opts=opts.CalendarMonthLabelOpts(name_map="cn"), pos_right="20px" ), ) .set_global_opts( visualmap_opts=opts.VisualMapOpts( max_=501, min_=1, orient="horizontal", is_piecewise=True, pos_left="40px" ), ) .dump_options_with_quotes() ) end = datetime.datetime.now() print("Calendar: " + str(end - start)) return c
def calendar_base() -> Calendar: begin = datetime.date(2020, 2, 12) data = [[str(begin + datetime.timedelta(days=i)), hours[i]] for i in range(day)] c = ( Calendar(init_opts=opts.InitOpts( width='1200px', height='300px', bg_color='white')).add( "", data, calendar_opts=opts.CalendarOpts( range_="2020")).set_global_opts( title_opts=opts.TitleOpts(title="小吴-2020年专注日记", subtitle=sub, item_gap=2, pos_left='center', padding=3), visualmap_opts=opts.VisualMapOpts( max_=15, min_=0, orient="horizontal", is_piecewise=True, pos_top="220px", pos_left="center", pieces=[ #github日历图配色 { "min": 12, "color": '#196127' }, { "min": 9, "max": 12, "color": '#239a3b' }, { "min": 6, "max": 9, "color": '#7bc96f' }, { "min": 3, "max": 6, "color": '#c6e48b' }, { "max": 3, "color": '#ebedf0' } ]), )) return c
def get_calender_data(request): def get_date(days): day = (date.today() - timedelta(days=555) - timedelta(days=days)) return day property = Property.objects.get(name=request.GET.get("calender-choice")) event_list = Event.objects.filter(property=property) start = datetime.datetime.now() begin = get_date(365) end = datetime.date.today() - timedelta(days=465) data = [] cur_day = end count = 0 for event in event_list: if event.create_time < cur_day: data.insert(0, (cur_day, count)) count = 0 cur_day -= timedelta(days=1) if cur_day < begin: break if event.create_time == cur_day: count += 1 c = (Calendar().add( "", data, calendar_opts=opts.CalendarOpts( range_=[begin, end], daylabel_opts=opts.CalendarDayLabelOpts(name_map="cn"), monthlabel_opts=opts.CalendarMonthLabelOpts(name_map="cn"), pos_right="20px"), ).set_global_opts(visualmap_opts=opts.VisualMapOpts( max_=501, min_=1, orient="horizontal", is_piecewise=True, pos_left="40px"), ).dump_options_with_quotes()) end = datetime.datetime.now() print("Calendar: " + str(end - start)) return HttpResponse(c, content_type='application/json')
def calendar_base() -> Calendar: # begin = datetime.date(2020,1,19) # end = datetime.date(2020,3,1) # data = [ # [str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)] # for i in range((end - begin).days + 1) # al # print(data) c = ( Calendar(init_opts=InitOpts( width="100%")) .add( "", new_date, calendar_opts=CalendarOpts( range_=['2020-1-15', '2020-3-1'], orient="vertical", pos_left=None, pos_right=None, pos_bottom=None, pos_top=None # daylabel_opts=LabelOpts( # font_size=10 # ) ) ) .set_global_opts( title_opts=TitleOpts( title="新增病例时间分布图", pos_left='center',pos_top='bottom', title_textstyle_opts=TextStyleOpts(font_size=40), ), visualmap_opts=VisualMapOpts( max_=40,min_=1, orient="vertical", range_color=['white','yellow','red'], # is_piecewise=True, pos_top="230px", pos_left="100px", item_height='200px',item_width='30px', ), ) ) return c
def calendar_example(): begin = datetime.date(2018, 1, 1) end = datetime.date(2019, 1, 1) # data = [visualmap_opts # [str(begin + datetime.timedelta(days=i)), random.randint(100, 2500)] # for i in range((end - begin).days) # ] data = [] for i in range((end - begin).days): temp = [ str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000) ] data.append(temp) # print(data) calend = ( # 设置图的宽高和背景色 Calendar(init_opts=opts.InitOpts(width='1300px', height='300px', bg_color='#7FFFAA', theme=ThemeType.CHALK) ).add(series_name='', yaxis_data=data, calendar_opts=opts.CalendarOpts(range_='2018') ) # range_决定了时间尺度 # .add(series_name='', yaxis_data=data, calendar_opts=opts.CalendarOpts(range_=['2018-1', '2018-7'])) # range_决定了时间尺度 .set_global_opts( title_opts=opts.TitleOpts(title='Calendar-2018年微信步数'), visualmap_opts=opts.VisualMapOpts( max_=25000, min_=100, range_size=[10, 20], # 不知道干嘛的 orient='horizontal', is_calculable=True, is_piecewise=True, # 颜色条是否分成pieces:True:pices, False:一根长条 pos_top='230px', pos_left='100px', # pos_right='100px', # out_of_range=[0,50,100], # 不知道干嘛的 ), )) return calend
def drawCalendar(data, year, title, min=0, max=5, filePath='.'): """保存日历图""" strYear = str(year) calendar = (Calendar( init_opts=opts.InitOpts(width='1280px', height='350px')).add( "", data, calendar_opts=opts.CalendarOpts(range_=[year])).set_global_opts( title_opts=opts.TitleOpts(title=title), visualmap_opts=opts.VisualMapOpts( max_=max, min_=min, orient="horizontal", is_piecewise=True, pos_top="230px", pos_left="100px", ), )) calendar.render(filePath)
def calendar_base(data, year) -> Calendar: c = ( Calendar() .add( series_name="", yaxis_data=data, calendar_opts=opts.CalendarOpts(range_=str(year))) .set_global_opts( visualmap_opts=opts.VisualMapOpts( max_=11, min_=1, orient="horizontal", is_piecewise=True, pos_top="230px", pos_left="100px", ), ) ) return c
def calendar_heat_map(data, k) -> Calendar: calendar = (Calendar().add( "", data, calendar_opts=opts.CalendarOpts(range_="2020")).set_global_opts( title_opts=opts.TitleOpts(title="user_id:" + k + " Upload numbers Heat Map"), visualmap_opts=opts.VisualMapOpts(orient="horizontal", is_piecewise=True, pos_top="230px", pos_left="100px", pieces=[{ "min": 1, "max": 5 }, { "min": 6, "max": 10 }, { "min": 11, "max": 15 }, { "min": 16, "max": 20 }, { "min": 21, "max": 25 }, { "min": 26, "max": 30 }, { "min": 31, "max": 40 }, { "min": 41, "max": 60 }, { "min": 61, "max": 80 }, { "min": 81 }]), )) return calendar
def Calendar_base() -> Calendar: begin = datetime.date(2018, 1, 1) end = datetime.date(2018, 12, 31) data = [[ str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000) ] for i in range((end - begin).day + 1)] c = (Calendar().add( '', data, calendar_opts=opts.CalendarOpts(range_="2018")).set_global_opts( title_opts=opts.TitleOpts(title="2018模拟步数"), visualmap_opts=opts.VisualMapOpts( max=20000, min=500, orient="horizontal", is_piecewise=True, pos_top="230px", pos_left="100px", ), )) return c
def calendar_base(): begin = datetime.date(2017, 1, 1) end = datetime.date(2017, 12, 31) data = [[ str(begin + datetime.timedelta(days=i)), random.randint(1000, 20000) ] for i in range((end - begin).days + 1)] c = (Calendar().add( '', data, calendar_opts=opts.CalendarOpts(range_='2017')).set_global_opts( title_opts=opts.TitleOpts(title='Calendar-2017 Wechat path'), visualmap_opts=opts.VisualMapOpts( max_=20000, min_=500, orient='horizontal', is_piecewise=True, pos_top='230px', pos_left='100px', ), toolbox_opts=opts.ToolboxOpts())) return c
def test_calendar_setting(fake_writer): begin = datetime.date(2017, 1, 1) end = datetime.date(2017, 12, 31) data = [ [str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)] for i in range((end - begin).days + 1) ] c = ( Calendar() .add( "", data, calendar_opts=opts.CalendarOpts( range_="2017", cell_size=15, daylabel_opts=opts.CalendarDayLabelOpts(name_map="cn"), monthlabel_opts=opts.CalendarMonthLabelOpts(name_map="cn"), ), ) .set_global_opts( visualmap_opts=opts.VisualMapOpts( max_=20000, min_=500, orient="horizontal", is_piecewise=True, pos_top="230px", pos_left="100px", ) ) ) c.render() _, content = fake_writer.call_args[0] assert_in("cellSize", content) assert_in("dayLabel", content) assert_in("monthLabel", content)
from pyecharts import options as opts from pyecharts.charts import Calendar, Pie from pyecharts import GraphicShapeOpts from pyecharts.globals import SymbolType from pyecharts.charts import Page, WordCloud, TreeMap data = [[resou_dt['date'][i], resou_dt['avg_count'][i]] for i in range(resou_dt.shape[0])] calendar = (Calendar( init_opts=opts.InitOpts(width='1800px', height='1500px')).add( "", data, calendar_opts=opts.CalendarOpts( range_=['2019-01-01', '2019-07-12'])).set_global_opts( title_opts=opts.TitleOpts(title="2019每日热搜平均指数", pos_left='15%'), visualmap_opts=opts.VisualMapOpts( max_=3600000, min_=0, orient="horizontal", is_piecewise=False, pos_top="230px", pos_left="100px", pos_right="10px")).render('日期热力图.html')) ## 词频统计 resou_word = dataframe_explode(resou, 'words_list') resou_word_stat = resou_word.groupby(['words_list'], as_index=False).agg({'title': ['count']}) resou_word_stat.columns = ['word', 'num'] resou_word_stat.to_excel('词频统计.xlsx')
from pywebio.output import put_html import datetime import random from pyecharts import options as opts from pyecharts.charts import Calendar begin = datetime.date(2017, 1, 1) end = datetime.date(2017, 12, 31) data = [[str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)] for i in range((end - begin).days + 1)] c = (Calendar().add( "", data, calendar_opts=opts.CalendarOpts(range_="2017")).set_global_opts( title_opts=opts.TitleOpts(title="Calendar-2017年微信步数情况"), visualmap_opts=opts.VisualMapOpts( max_=20000, min_=500, orient="horizontal", is_piecewise=True, pos_top="230px", pos_left="100px", ), )) c.width = "100%" put_html(c.render_notebook())
from pyecharts.charts import Calendar import pyecharts.options as opts import pandas as pd import datetime df = pd.read_csv('city_day.csv') data = df.loc[df['City'] == 'Delhi', ['Date', 'PM2.5']] list1 = [] for date, pm in zip(data['Date'], data['PM2.5']): time_list = date.split('-') time = datetime.date(int(time_list[0]), int(time_list[1]), int(time_list[2])) list1.append([str(time), pm]) calendar = Calendar() calendar.add( '', list1, calendar_opts=opts.CalendarOpts( pos_top="120", pos_left="30", pos_right="30", range_="2017", yearlabel_opts=opts.CalendarYearLabelOpts(is_show=False), ), ) calendar.set_global_opts( title_opts=opts.TitleOpts(pos_top="30",
import datetime import pyecharts print(pyecharts.__version__) # 示例数据 begin = datetime.date(2019, 1, 1) end = datetime.date(2019, 12, 31) data = [[str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)] for i in range((end - begin).days + 1)] """ 日历图示例: """ calendar = ( Calendar() .add("微信步数", data, calendar_opts=opts.CalendarOpts(range_="2019")) .set_global_opts( title_opts=opts.TitleOpts(title="Calendar-基本示例", subtitle="我是副标题"), legend_opts=opts.LegendOpts(is_show=False), visualmap_opts=opts.VisualMapOpts( max_=25000, min_=1000, orient="horizontal", is_piecewise=True, pos_top="230px", pos_left="100px", ) ) ) calendar.render_notebook()
end = datetime.date(2017, 12, 31) data = [ [str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)] for i in range((end - begin).days + 1) ] c = ( Calendar() .add( "", data, calendar_opts=opts.CalendarOpts( range_="2017", daylabel_opts=opts.CalendarDayLabelOpts(name_map="cn"), monthlabel_opts=opts.CalendarMonthLabelOpts(name_map="cn"), ), ) .set_global_opts( title_opts=opts.TitleOpts(title="Calendar-2017年微信步数情况(中文 Label)"), visualmap_opts=opts.VisualMapOpts( max_=20000, min_=500, orient="horizontal", is_piecewise=True, pos_top="230px", pos_left="100px", ), ) .render("calendar_label_setting.html") )
import random import datetime from pyecharts import options as opts from pyecharts.charts import Calendar begin = datetime.date(2017, 1, 1) end = datetime.date(2017, 12, 31) data = [[str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)] for i in range((end - begin).days + 1)] c = (Calendar(init_opts=opts.InitOpts(width="1000px", height="500px")).add( series_name="", yaxis_data=data, calendar_opts=opts.CalendarOpts( pos_top="120", pos_left="30", pos_right="30", range_="2017", yearlabel_opts=opts.CalendarYearLabelOpts( is_show=False))).set_global_opts( title_opts=opts.TitleOpts(pos_top="30", pos_left="center", title="2017年步数情况"), visualmap_opts=opts.VisualMapOpts( max_=20000, min_=500, orient="horizontal", is_piecewise=False)).render("Calendar_heatmap.html"))