Pyecharts基础
Pyecharts基础
1.安装pyecharts
pip insatll pyecharts -i https://pypi.doubanio.com/simple
2.绘图基本步骤
- 准备数据
- 设计样式、背景颜色
- 绘图
- 设计标题、图例等属性
- 导出html
3.示例
3.1柱状图
#导入相关库
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker
import numpy as np
happiness = np.random.randint(100,200,6).tolist()
sadness = np.random.randint(20,40,6).tolist()
c = Bar()
#添加X轴数据
c.add_xaxis([year for year in range(2016,2022,1)])
#添加Y轴数据
c.add_yaxis("幸福指数", happiness)
c.add_yaxis("悲伤指数", sadness)
#设置标题和子标题
c.set_global_opts(title_opts=opts.TitleOpts(title="近六年的健康状况", subtitle="2016-2021"))
#导出html文件
c.render("bar_base.html")

3.2折线图
import pyecharts.options as opts
from pyecharts.charts import Line
from pyecharts.faker import Faker
c = (
Line()
.add_xaxis(['a','b','c','d'])
.add_yaxis("商家A", [2,4,6,8])
.add_yaxis("商家B", [56,89,23,56])
.set_global_opts(title_opts=opts.TitleOpts(title="Line-基本示例"))
.render("line_base.html")
)

3.3漏斗图
from pyecharts import options as opts
from pyecharts.charts import Funnel
from pyecharts.faker import Faker
c = (
Funnel()
.add("商品", [list(z) for z in zip(['憨憨','花生','study','sports','goodness'], [66,60,50,45])])
.set_global_opts(title_opts=opts.TitleOpts(title="憨憨的属性"))
.render("funnel_base.html")
)

3.4涟漪散点图
from pyecharts import options as opts
from pyecharts.charts import EffectScatter
from pyecharts.faker import Faker
c = (
EffectScatter()
.add_xaxis(Faker.choose())
.add_yaxis("", Faker.values())
.set_global_opts(title_opts=opts.TitleOpts(title="EffectScatter-基本示例"))
.render("effectscatter_base.html")
)

3.5地理坐标
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.faker import Faker
c = (
Geo()
.add_schema(maptype="china")
.add("", [list(z) for z in zip(['江苏','湖北','山西','河南','安徽','山东'], ['school','home','love','憨憨','憨憨','憨憨'])])
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
title_opts=opts.TitleOpts(title="Geo-基本示例")
)
.render("geo_base.html")
)

3.6词云图
from pyecharts import options as opts
from pyecharts.charts import WordCloud
from pyecharts.globals import SymbolType
words = [
("Sam S Club", 10000),
("Macys", 6181),
("Amy Schumer", 4386),
("Jurassic World", 4055),
("Charter Communications", 2467),
("Chick Fil A", 2244),
("Planet Fitness", 1868),
("Pitch Perfect", 1484),
("Express", 1112),
("Home", 865),
("Johnny Depp", 847),
("Lena Dunham", 582),
("Lewis Hamilton", 555),
("KXAN", 550),
("Mary Ellen Mark", 462),
("Farrah Abraham", 366),
("Rita Ora", 360),
("Serena Williams", 282),
("NCAA baseball tournament", 273),
("Point Break", 265),
]
c = (
WordCloud()
.add("", words, word_size_range=[20, 100], shape=SymbolType.DIAMOND)
.set_global_opts(title_opts=opts.TitleOpts(title="WordCloud-shape-diamond"))
.render("wordcloud_diamond.html")
)

3.7关系图
from pyecharts import options as opts
from pyecharts.charts import Graph
nodes = [
{"name": "憨憨", "symbolSize": 10,"value":10},
{"name": "花生", "symbolSize": 20,"value":20},
{"name": "图书馆", "symbolSize": 100,"value":100},
{"name": "吃早饭", "symbolSize": 90,"value":90},
{"name": "吃午饭", "symbolSize": 99,"value":99},
{"name": "吃晚饭", "symbolSize": 88,"value":88},
{"name": "吃零食", "symbolSize": 78,"value":78},
{"name": "吃夜宵", "symbolSize": 20,"value":20},
]
categories=[10,20,56,66,66,66,66,66,66]
links = []
for i in nodes:
for j in nodes:
links.append({"source": i.get("name"), "target": j.get("name")})
c = (
Graph()
.add("", nodes, links,repulsion=8000,label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(title_opts=opts.TitleOpts(title="Graph-基本示例"))
.render("graph_base.html")
)

3.6更多示例
https://gallery.pyecharts.org/#/Line/line_base
4.设置属性
4.1设置主题和数据集
class _ThemeType:
BUILTIN_THEMES = ["light", "dark", "white"]
LIGHT = "light"
DARK = "dark"
WHITE = "white"
CHALK: str = "chalk"
ESSOS: str = "essos"
INFOGRAPHIC: str = "infographic"
MACARONS: str = "macarons"
PURPLE_PASSION: str = "purple-passion"
ROMA: str = "roma"
ROMANTIC: str = "romantic"
SHINE: str = "shine"
VINTAGE: str = "vintage"
WALDEN: str = "walden"
WESTEROS: str = "westeros"
WONDERLAND: str = "wonderland"
HALLOWEEN: str = "halloween"
def choose(self) -> list:
return random.choice(
[
self.clothes,
self.drinks,
self.phones,
self.fruits,
self.animal,
self.dogs,
self.week,
]
)
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker
c = (
Bar(init_opts=opts.InitOpts(theme='walden'))
.add_xaxis(Faker.fruits)
.add_yaxis("商家1", Faker.values())
.add_yaxis("商家2", Faker.values())
.set_global_opts(title_opts=opts.TitleOpts(title="这是主标题", subtitle="这是副标题"))
.render("bar_base.html")
)

4.2设置图例位置、坐标轴标签
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker
c = (
Bar(init_opts=opts.InitOpts(theme='walden'))
.add_xaxis(Faker.fruits)
.add_yaxis("商家1", Faker.values())
.add_yaxis("商家2", Faker.values())
.set_global_opts(title_opts=opts.TitleOpts(title="这是主标题", subtitle="这是副标题"),
#图例的位置
legend_opts=opts.LegendOpts(type_="scroll", orient="vertical",pos_top="5%",pos_left="75%"),
#设置坐标轴旋转
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=15)),
)
.render("bar_base.html")
)


浙公网安备 33010602011771号