pycharts-基本图表
基本图表
饼图
# 虚假数据 cate = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu'] data = [123, 153, 89, 107, 98, 23] pie = (Pie() .add('', [list(z) for z in zip(cate, data)]) ) pie.render_notebook()
漏斗图
# 虚假数据 cate = ['访问', '注册', '加入购物车', '提交订单', '付款成功'] data = [30398, 15230, 10045, 3109, 1698] funnel = (Funnel() .add("", [list(z) for z in zip(cate, data)]) ) funnel.render_notebook()
仪表盘¶
gauge = (Gauge() .add("", [('转化率',34)]) ) gauge.render_notebook()
水球图
liquid = (Liquid() .add("", [0.52, 0.44]) ) liquid.render_notebook()
日历图
import math # 虚假数据 begin = datetime.date(2019, 1, 1) end = datetime.date(2019, 12, 31) data = [[str(begin + datetime.timedelta(days=i)), abs(math.cos(i/100))* random.randint(1000, 1200)] for i in range((end - begin).days + 1)] calendar = ( Calendar() .add("", data, calendar_opts=opts.CalendarOpts(range_="2019")) ) calendar.render_notebook()
关系图
nodes = [ {"name": "结点1", "symbolSize": 1}, {"name": "结点2", "symbolSize": 2}, {"name": "结点3", "symbolSize": 3}, {"name": "结点4", "symbolSize": 4}, {"name": "结点5", "symbolSize": 5}, {"name": "结点6", "symbolSize": 6}, {"name": "结点7", "symbolSize": 7}, {"name": "结点8", "symbolSize": 8}, ] links = [{'source': '结点1', 'target': '结点2'}, {'source': '结点1', 'target': '结点3'}, {'source': '结点1', 'target': '结点4'}, {'source': '结点2', 'target': '结点1'}, {'source': '结点3', 'target': '结点4'}, {'source': '结点3', 'target': '结点5'}, {'source': '结点3', 'target': '结点6'}, {'source': '结点4', 'target': '结点1'}, {'source': '结点4', 'target': '结点2'}, {'source': '结点4', 'target': '结点7'}, {'source': '结点4', 'target': '结点8'}, {'source': '结点5', 'target': '结点1'}, {'source': '结点5', 'target': '结点4'}, {'source': '结点5', 'target': '结点6'}, {'source': '结点5', 'target': '结点7'}, {'source': '结点5', 'target': '结点8'}, {'source': '结点6', 'target': '结点1'}, {'source': '结点6', 'target': '结点7'}, {'source': '结点6', 'target': '结点8'}, {'source': '结点7', 'target': '结点1'}, {'source': '结点7', 'target': '结点2'}, {'source': '结点7', 'target': '结点8'}, {'source': '结点8', 'target': '结点1'}, {'source': '结点8', 'target': '结点2'}, {'source': '结点8', 'target': '结点3'}, ] graph = ( Graph() .add("", nodes, links) ) graph.render_notebook()
平行坐标系
# 虚假数据 data = [ ['一班', 78, 91, 123, 78, 82, 67, "优秀"], ['二班', 89, 101, 127, 88, 86, 75, "良好"], ['三班', 86, 93, 101, 84, 90, 73, "合格"], ] parallel = ( Parallel() .add_schema( [ opts.ParallelAxisOpts( dim=0, name="班级", type_="category", data=["一班", "二班", "三班"], ), opts.ParallelAxisOpts(dim=1, name="英语"), opts.ParallelAxisOpts(dim=2, name="数学"), opts.ParallelAxisOpts(dim=3, name="语文"), opts.ParallelAxisOpts(dim=4, name="物理"), opts.ParallelAxisOpts(dim=5, name="生物"), opts.ParallelAxisOpts(dim=6, name="化学"), opts.ParallelAxisOpts( dim=7, name="评级", type_="category", data=["优秀", "良好", "合格"], ), ] ) .add("", data) ) parallel.render_notebook()
极坐标系
# 虚假数据 cate = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu'] data = [123, 153, 89, 107, 98, 23] polar = ( Polar() .add_schema( radiusaxis_opts=opts.RadiusAxisOpts(data=cate, type_="category"), ) .add("", data, type_='bar') ) polar.render_notebook()
雷达图
# 虚假数据 data = [ [78, 91, 123, 78, 82, 67], [89, 101, 127, 88, 86, 75], [86, 93, 101, 84, 90, 73], ] radar = (Radar() .add_schema(schema=[ opts.RadarIndicatorItem(name="语文", max_=150), opts.RadarIndicatorItem(name="数学", max_=150), opts.RadarIndicatorItem(name="英语", max_=150), opts.RadarIndicatorItem(name="物理", max_=100), opts.RadarIndicatorItem(name="生物", max_=100), opts.RadarIndicatorItem(name="化学", max_=100), ] ) .add('', data) ) radar.render_notebook()
旭日图
# 虚假数据 data = [ {"name": "湖南", "children": [ {"name": "长沙", "children": [ {"name": "雨花区", "value": 55}, {"name": "岳麓区", "value": 34}, {"name": "天心区", "value": 144}, ]}, {"name": "常德", "children": [ {"name": "武陵区", "value": 156}, {"name": "鼎城区", "value": 134}, ]}, {"name": "湘潭", "value": 87}, {"name": "株洲", "value": 23}, ], }, {"name": "湖北", "children": [ {"name": "武汉", "children": [ {"name": "洪山区", "value": 55}, {"name": "东湖高新", "value": 78}, {"name": "江夏区", "value": 34}, ]}, {"name": "鄂州", "value": 67}, {"name": "襄阳", "value": 34}, ], }, {"name": "北京", "value": 235} ] sunburst = (Sunburst() .add("", data_pair=data) ) sunburst.render_notebook()
桑基图¶
# 虚假数据 nodes = [ {"name": "访问"}, {"name": "注册"}, {"name": "付费"}, ] links = [ {"source": "访问", "target": "注册", "value": 50}, {"source": "注册", "target": "付费", "value": 30}, ] sankey = ( Sankey() .add("", nodes, links) ) sankey.render_notebook()
河流图
# 虚假数据 cate = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu'] date_list = ["2020/4/{}".format(i + 1) for i in range(30)] data = [[day, random.randint(10, 50), c] for day in date_list for c in cate] river = ( ThemeRiver() .add( series_name=cate, data=data, singleaxis_opts=opts.SingleAxisOpts(type_="time") ) ) river.render_notebook()
词云图
words = [ ("hey", 230), ("jude", 124), ("dont", 436), ("make", 255), ("it", 247), ("bad", 244), ("Take", 138), ("a sad song", 184), ("and", 12), ("make", 165), ("it", 247), ("better", 182), ("remember", 255), ("to", 150), ("let", 162), ("her", 266), ("into", 60), ("your", 82), ("heart", 173), ("then", 365), ("you", 360), ("can", 282), ("start", 273), ("make", 265), ] wc = ( WordCloud() .add("", words) ) wc.render_notebook()
表格
from pyecharts.components import Table table = Table() headers = ["City name", "Area", "Population", "Annual Rainfall"] rows = [ ["Brisbane", 5905, 1857594, 1146.4], ["Adelaide", 1295, 1158259, 600.5], ["Darwin", 112, 120900, 1714.7], ["Hobart", 1357, 205556, 619.5], ["Sydney", 2058, 4336374, 1214.8], ["Melbourne", 1566, 3806092, 646.9], ["Perth", 5386, 1554769, 869.4], ] table.add(headers, rows) table.render_notebook()
天道酬勤 循序渐进 技压群雄