一、折线图
from pyecharts.charts import Line
from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts
# 得到折线图对象
line = Line()
# 添加x轴数据
line.add_xaxis(["中国","美国","德国"])
# 添加y轴数据
line.add_yaxis("GDP",[30,20,10])
# 设置全局配置项
line.set_global_opts(
title_opts=TitleOpts(title="GDP展示",pos_left="center",pos_bottom="1%"),
legend_opts = LegendOpts(is_show=True),
toolbox_opts=ToolboxOpts(is_show=True),
visualmap_opts=VisualMapOpts(is_show=True)
)
# 生成图像
line.render()
二、地图
from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts
# 准备地图对象
map = Map()
# 准备数据
data = [
("北京市",99),
("上海市",55),
("黑龙江省",144),
("广东省",96),
("吉林省",67),
]
# 添加数据
map.add("测试地图",data,"china")
# 设置全局选项
map.set_global_opts(
visualmap_opts=VisualMapOpts(
is_show=True,
is_piecewise=True, # 设置分段
pieces=[ # 手动设置分段颜色
{"min":1,"max":9,"lable":"1-9","color":"#CCFFFF"},
{"min":10,"max":99,"lable":"10-99","color":"#FF6666"},
{"min":100,"max":500,"lable":"100-500","color":"#990033"},
]
)
)
# 绘图
map.render()
三、柱状图
from pyecharts.charts import Bar
bar = Bar()
bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
# render 会生成本地 HTML 文件,默认会在当前目录生成 render.html 文件
# 也可以传入路径参数,如 bar.render("mycharts.html")
bar.render()
四、饼图
from pyecharts.charts import Pie
from pyecharts import options as opts
# 准备数据
data = [("Mon", 820), ("Tue", 932), ("Wed", 901), ("Thu", 934), ("Fri", 1290), ("Sat", 1330), ("Sun", 1320)]
# 创建饼图对象
pie = Pie()
# 添加数据
pie.add("", data)
# 设置全局配置
pie.set_global_opts(
title_opts=opts.TitleOpts(title="一周销量占比"),
legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%"),
)
# 设置系列配置
pie.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
# 展示图表
pie.render("pie.html")
五、散点图
from pyecharts.charts import Scatter
from pyecharts import options as opts
# 准备数据
data = [
[10.0, 8.04],
[8.0, 6.95],
[13.0, 7.58],
[9.0, 8.81],
[11.0, 8.33],
[14.0, 9.96],
[6.0, 7.24],
[4.0, 4.26],
[12.0, 10.84],
[7.0, 4.82],
[5.0, 5.68]
]
# 创建散点图对象
scatter = Scatter()
# 添加数据
scatter.add_xaxis([item[0] for item in data])
scatter.add_yaxis("", [item[1] for item in data])
# 设置全局配置
scatter.set_global_opts(
title_opts=opts.TitleOpts(title="散点图示例"),
xaxis_opts=opts.AxisOpts(name="X轴"),
yaxis_opts=opts.AxisOpts(name="Y轴"),
)
# 展示图表
scatter.render("scatter.html")
六、漏斗图
from pyecharts.charts import Funnel
from pyecharts import options as opts
# 准备数据
data = [("展现", 100), ("点击", 80), ("访问", 60), ("咨询", 40), ("订单", 20)]
# 创建漏斗图对象
funnel = Funnel()
# 添加数据
funnel.add("", data)
# 设置全局配置
funnel.set_global_opts(
title_opts=opts.TitleOpts(title="漏斗图示例"),
legend_opts=opts.LegendOpts(pos_top="10%"),
)
# 展示图表
funnel.render("funnel.html")
六、仪表盘
from pyecharts.charts import Gauge
from pyecharts import options as opts
# 创建仪表盘对象
gauge = Gauge()
# 添加数据
gauge.add("", [("完成率", 66.6)])
# 设置全局配置
gauge.set_global_opts(
title_opts=opts.TitleOpts(title="仪表盘示例"),
legend_opts=opts.LegendOpts(is_show=False),
)
# 设置系列配置
gauge.set_series_opts(
axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts(width=30)
),
)
# 展示图表
gauge.render("gauge.html")
七、K线图
from pyecharts.charts import Kline
from pyecharts import options as opts
# 准备数据
data = [
[2320.26, 2302.6, 2287.3, 2362.94],
[2300, 2291.3, 2288.26, 2308.38],
[2295.35, 2346.5, 2295.35, 2346.92],
[2347.22, 2358.98, 2337.35, 2363.8],
[2360.75, 2382.48, 2347.89, 2383.76],
[2383.43, 2385.42, 2371.23, 2391.82],
[2377.41, 2419.02, 2369.57, 2421.15],
[2425.92, 2428.15, 2417.58, 2440.38],
[2411, 2433.13, 2403.3, 2437.42],
[2432.68, 2334.48, 2427.7, 2441.73]
]
# 创建K线图对象
kline = Kline()
# 添加数据
kline.add_xaxis([str(i) for i in range(1, len(data)+1)])
kline.add_yaxis("K线图", data)
# 设置全局配置
kline.set_global_opts(
title_opts=opts.TitleOpts(title="K线图示例"),
xaxis_opts=opts.AxisOpts(name="日期"),
yaxis_opts=opts.AxisOpts(name="价格"),
)
# 展示图表
kline.render("kline.html")
八、词云
from pyecharts.charts import WordCloud
from pyecharts.globals import SymbolType
from pyecharts import options as opts
# 准备数据
data = [
("Python", 10000),
("Java", 8000),
("C++", 7000),
("JavaScript", 6000),
("C#", 5000),
("PHP", 4000),
("Swift", 3000),
("Objective-C", 2000),
("Ruby", 1000),
("R", 900),
("Scala", 800),
("Go", 700),
("Kotlin", 600),
("Lua", 500),
("Perl", 400),
("Groovy", 300),
("Dart", 200),
("Visual Basic", 100),
]
# 创建词云对象
wordcloud = WordCloud()
# 添加数据
wordcloud.add("", data, word_size_range=[20, 100], shape=SymbolType.DIAMOND)
# 设置全局配置
wordcloud.set_global_opts(
title_opts=opts.TitleOpts(title="词云示例"),
tooltip_opts=opts.TooltipOpts(is_show=True),
)
# 展示图表
wordcloud.render("wordcloud.html")
九、组合图表
from pyecharts.charts import Bar, Line
from pyecharts import options as opts
from pyecharts.globals import ThemeType
# 准备数据
x_data = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
y_data1 = [120, 200, 150, 80, 70, 110, 130]
y_data2 = [90, 150, 200, 170, 160, 150, 120]
# 创建组合图表对象
combo = Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
# 添加数据
combo.add_xaxis(x_data)
combo.add_yaxis("A", y_data1)
combo.extend_axis(
yaxis=opts.AxisOpts(
name="B",
type_="value",
position="right",
axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts(color="#675bba")
),
axislabel_opts=opts.LabelOpts(formatter="{value} °C"),
)
)
combo.add_yaxis("B", y_data2, yaxis_index=1)
# 设置全局配置
combo.set_global_opts(
title_opts=opts.TitleOpts(title="组合图表示例"),
xaxis_opts=opts.AxisOpts(name="日期"),
yaxis_opts=opts.AxisOpts(name="A", splitline_opts=opts.SplitLineOpts(is_show=False)),
tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),
)
# 添加折线图
line = Line()
line.add_xaxis(x_data)
line.add_yaxis("C", [50, 60, 70, 80, 90, 100, 110], yaxis_index=1)
# 合并图表
combo.overlap(line)
# 展示图表
combo.render("combo.html")