PyEcharts各类画图
时间: 2025-02-02 20:29:02 浏览: 46
### PyEcharts各类图表绘制方法及示例
#### 绘制柱状图(Bar Chart)
利用`pyecharts.charts.Bar`可以创建柱状图实例对象,通过调用`.add_xaxis()`和`.add_yaxis()`来设置X轴数据以及Y轴的数据系列。最后使用`.render()`函数将图形渲染到HTML文件中。
```python
from pyecharts.charts import Bar
from pyecharts import options as opts
bar = (
Bar()
.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
.set_global_opts(title_opts=opts.TitleOpts(title="销售情况"))
)
bar.render('bar_chart.html')
```
此段代码展示了如何构建一个简单的柱形图并保存为HTML文档[^1]。
#### 折线图(Line Chart)
折线图对于展示趋势变化非常有用,在PyEcharts里可以通过`pyecharts.charts.Line`实现:
```python
from pyecharts.charts import Line
line = (
Line()
.add_xaxis(['周一', '周二', '周三', '周四', '周五'])
.add_yaxis(
series_name='最高气温',
y_axis=[11, 11, 15, 13, 12],
markpoint_opts=opts.MarkPointOpts(data=[
opts.MarkPointItem(type_='max'),
opts.MarkPointItem(type_='min')])
)
.set_global_opts(title_opts=opts.TitleOpts(title="某地一周天气"))
)
line.render('line_chart.html')
```
这段脚本说明了怎样制作带有标记点(最大值最小值)的折线图,并将其导出至本地文件系统。
#### 使用Grid布局组合多个图表
当希望在一个页面上显示多种不同类型或同一类型的不同视角下的统计信息时,就可以考虑采用网格(Grid)布局方式。下面的例子演示了如何把两个图表放在同一个画布内:
```python
from pyecharts.charts import Grid, Bar, Line
# 创建第一个图表 - 柱状图
bar = (
Bar()
.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
.add_yaxis("销量", [randrange(0, 100) for _ in range(6)])
)
# 创建第二个图表 - 折线图
line = (
Line()
.add_xaxis(list(map(str, list(range(2012, 2022)))))
.add_yaxis("利润", [randint(1000, 8000) for _ in range(10)])
)
# 将上述两张表放入Grid容器中
grid = (
Grid(init_opts=opts.InitOpts(width="1200px", height="600px"))
.add(bar, grid_opts=opts.GridOpts(pos_left="5%", pos_right="45%"))
.add(line, grid_opts=opts.GridOpts(pos_left="55%", pos_right="5%"))
)
grid.render('multi_charts_grid_layout.html')
```
这里定义了一个包含两部分视图的整体结构——左侧放置的是商品销售额分布状况;右侧则反映了历年来的盈利走势。
#### 构建三维散点图(Scatter Plot 3D)
针对更复杂的空间数据分析需求,还可以借助于`pyecharts.globals.ChartType.SCATTER_3D`属性生成三维空间内的散点投影效果。
```python
import random
from pyecharts.charts import Scatter3D
from pyecharts import options as opts
data = [
[random.randint(0, 100),
random.randint(0, 100),
random.randint(0, 100)]
for i in range(80)]
scatter3d = (
Scatter3D()
.add("", data)
.set_global_opts(visually_map_opts=opts.VisualMapOpts())
)
scatter3d.render('scatter_plot_3d.html')
```
以上程序片段实现了随机生成一组坐标点集合作为样本输入参数,进而得到一张具有视觉映射功能的立体化散点云图像[^3]。
阅读全文
相关推荐


















