pyecharts 是一个用于生成 Echarts 图表的类库。echarts 是百度开源的一个数据可视化 JS 库,主要用于数据可视化。pyecharts 是一个用于生成 Echarts 图表的类库。实际上就是 Echarts 与 Python 的对接。使用 pyecharts 可以生成独立的网页,也可以在 flask , Django 中集成使用。
pip install pyecharts
我安装的是老版本,pyecharts-0.5.11-py2.py3-none-any.whl
pip install pyecharts-snapshot
需要绘制中国地图的时候安装下面模块:
pip install echarts-countries-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
add() 用于添加图表的数据和设置各种配置项
show_config() 打印输出图表的所有配置项
render() 默认在根目录下生成一个 render.html 的文件,支持 path参数–设置文件保存位置,文件用浏览器打开。
from pyecharts import Bar
bar = Bar("大标题","副标题")
bar.add("y-数据说明",["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],[5, 20, 36, 10, 75, 90])
# render 会生成本地 HTML 文件,默认会在当前目录生成 render.html 文件
# 也可以传入路径参数,如 bar.render("mycharts.html")
bar.show_config() # 显示配置项
bar.render("./zhuzhuangtu.html")
from pyecharts import Pie
attr =["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
v1 =[11, 12, 13, 10, 10, 10]
pie =Pie("饼图示例")
pie.add("", attr, v1, is_label_show=True)
pie.show_config()
pie.render("pie_1.html")
from pyecharts import Pie
name = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
cols = [11, 12, 13, 10, 10, 10]
pie=Pie()
pie.add(".",name, cols, center=[50, 50], is_random=False, radius=[30, 75], rosetype='area',
is_legend_show=False, is_label_show=True,label_text_size=13)
# is_random 颜色不再随机,每次分配的颜色都是一样的 不变
# rosetype='area'是否展示成南丁格尔图,通过半径区分数据大小,有'radius'和'area'两种模式。
# radius:扇区圆心角展现数据的百分比,半径展现数据的大小
# area:所有扇区圆心角相同,仅通过半径展现数据大小
# 显示标签is_show=True
pie.show_config()
pie.render("meigui.html")
from pyecharts import Line
attr =["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
v1 =[5, 20, 36, 10, 10, 100]
v2 =[55, 60, 16, 20, 15, 80]
line =Line("折线图示例")
line.add("商家A", attr, v1, mark_point=["average"])
# 第一条图例是商家A 横轴是attr 纵轴是v1
# mark_point显示出来平均值的点
line.add("商家B", attr, v2, is_smooth=True, mark_line=["max", "average"])
# mark_line=["max", "average"]显示出来最大值和平均值对应的线
# is_smooth=True是设置线是平滑的
line.show_config()
line.render("折线图.html")
面积图:
line =Line("折线图-面积图示例")
line.add("商家A", attr, v1, is_fill=True, area_color='#5F9EA0',line_opacity=0.2, area_opacity=0.4, symbol=None)
line.add("商家B", attr, v2, is_fill=True, area_color='#7FFFAA', area_opacity=0.3, is_smooth=True)
line.show_config()
line.render("面积图.html")
from pyecharts import Gauge
gua = Gauge("仪表盘-演示")
gua.add("","任务完成情况", 80)
gua.render("仪表盘.html")
from pyecharts import WordCloud
name =['Sam S Club', 'Macys', 'Amy Schumer', 'Jurassic World', 'Charter Communications', 'Chick Fil A', 'Planet Fitness', 'Pitch Perfect', 'Express', 'Home', 'Johnny Depp', 'Lena Dunham', 'Lewis Hamilton', 'KXAN', 'Mary Ellen Mark', 'Farrah Abraham', 'Rita Ora', 'Serena Williams', 'NCAA baseball tournament', 'Point Break']
value =[10000, 6181, 4386, 4055, 2467, 2244, 1898, 1484, 1112, 965, 847, 582, 555, 550, 462, 366, 360, 282, 273, 265]
wordcloud =WordCloud(width=1300, height=620)
wordcloud.add("", name, value, word_size_range=[20, 100],shape='diamond')
# 可以指定词云的形状
wordcloud.show_config()
wordcloud.render("词云.html")