pycharts模块是百度开元的一个数据可视化JavaScnpt库。最重要的是:使用pyecharts绘制的图表美观且具有交互性。
使用PIP安装。
pip install pycharts==0.5.11
注意:pyecharts包在1.0版本之后就大版本更新了,现有的语法结构都变了。所以,安装的时候要留心版本。
import pyecharts # 0.5.11
import numpy as np
import pandas as pd
x = [10,20,30,40,50,60]
y = [10,20,30,40,50,60]
scatter = pyecharts.Scatter("散点图示例")
scatter.add("A", x,y)
使用pyecharts模块绘图十分简单,跟之前的函数名称都差不多,而且这个更加直接。
通过visualmap参数可以利用图形的代销显示数值。
x = [10,20,30,40,50,60]
y = [10,20,30,40,50,60]
scatter = pyecharts.Scatter("散点图示例")
scatter.add("A", x,y, is_visualmap=True, visual_type='size', visual_range_size=[10,60])
scatter
通过Line函数可以绘制折线图。
years = [1950, 1960, 1970, 1980, 1990, 2000, 2010]
gdp = [300.2, 543.3, 1075.9, 2826.5, 5979.6, 10289.7, 14958.3]
line = pyecharts.Line("折线图示例")
line.add("GDP", years, gdp, mark_point=['avererage'])
line
years = [1950, 1960, 1970, 1980, 1990, 2000, 2010]
gdp = [300.2, 543.3, 1075.9, 2826.5, 5979.6, 10289.7, 14958.3]
line = pyecharts.Line("折线图示例")
line.add("GDP", years, gdp, is_step=True)
line
设置is_fill参数绘制面积图,area_color为填充颜色,area_opacity为透明度。
years = [1950, 1960, 1970, 1980, 1990, 2000, 2010]
gdp = [300.2, 543.3, 1075.9, 2826.5, 5979.6, 10289.7, 14958.3]
line = pyecharts.Line("面积图")
line.add("GDP", years, gdp, is_fill=True, area_color='#000', area_opacity=0.3)
line
利用Bar函数可以绘制柱状图。
data = [23,67,89,45,78]
labels = ['A', 'B', 'C', 'D', 'E']
bar = pyecharts.Bar("柱状图")
bar.add("one", labels, data)
bar
data1 = [12,13,14,25,67]
data2 = [34,56,78,45,67]
labels = ['A', 'B', 'C', 'D', 'E']
bar = pyecharts.Bar("并列柱状图")
bar.add("one", labels, data1)
bar.add('two', labels, data2)
data1 = [12,13,14,25,67]
data2 = [34,56,78,45,67]
labels = ['A', 'B', 'C', 'D', 'E']
bar = pyecharts.Bar("堆积柱状图")
bar.add("one", labels, data1, is_stack=True)
bar.add('two', labels, data2, is_stack=True)
通过is_convert参数可以绘制垂直柱状图。
data1 = [12,13,14,25,67]
labels = ['A', 'B', 'C', 'D', 'E']
bar = pyecharts.Bar("垂直柱状图")
bar.add("one", labels, data1, is_convert=True)
利用mark_point和mark_line参数可以标记点和线。
data1 = [12,13,14,25,67]
data2 = [34,56,78,45,67]
labels = ['A', 'B', 'C', 'D', 'E']
bar = pyecharts.Bar("标记点和线")
bar.add("one", labels, data1, mark_point=['average'])
bar.add('two', labels, data2, mark_point=['max'], mark_line=['min', 'max'])
设置bar_category参数为0可以绘绘制直方图。
data1 = [12,13,14,25,67]
labels = ['A', 'B', 'C', 'D', 'E']
bar = pyecharts.Bar("直方图")
bar.add("one", labels, data1, bar_category_gap=0)
利用Pie方法可以绘制饼图。
data = [55,24,67,88,99]
labels = ['A', 'B', 'C', 'D', 'E']
pie = pyecharts.Pie('饼图')
pie.add('', labels, data, is_label_show=True)
通过radius参数可以设置半径。
data = [55,24,67,88,99]
labels = ['A', 'B', 'C', 'D', 'E']
pie = pyecharts.Pie('圆环图')
pie.add('', labels, data, radius=[30,80],is_label_show=True)
通过设置rosetype参数可以绘制玫瑰图,radius表示圆心角不同,area表示圆心角相同。
data = [55,24,67,88,99]
labels = ['A', 'B', 'C', 'D', 'E']
pie = pyecharts.Pie('玫瑰图')
pie.add('', labels, data, is_label_show=True, radius=[50,90],rosetype='radius')
data = [55,24,67,88,99]
labels = ['A', 'B', 'C', 'D', 'E']
pie = pyecharts.Pie('玫瑰图')
pie.add('', labels, data, is_label_show=True, radius=[50,90],center=[50,50],rosetype='area')