python 可视化 | pyecharts基本使用
今天更一篇用pyecharts的基础图形篇,折线图、柱状图、散点图、饼状图,本次使用的是pyecharts0.5.3版
Pyecharts 0.5.x版的官网
https://pyecharts.readthedocs.io/projects/pyecharts-en/zh/latest/#welcome-to-read-the-docs
环境:
pyecharts 0.5.11
下载命令:pip install pyecharts=0.5.11
折线图:
基本使用
数据:
时间:['2019-03-01星期五', '2019-03-02星期六', '2019-03-03星期日', '2019-03-04星期一', '2019-03-05星期二', '2019-03-06星期三', '2019-03-07星期四', '2019-03-08星期五', '2019-03-09星期六', '2019-03-10星期日', '2019-03-11星期一', '2019-03-12星期二']
温度:[23, 25, 21, 23, 24, 19, 16, 15, 18, 17, 22, 24]
代码实现:
def line_(x, y, title='折线图'):
line = Line('折线图',
width=800,
height=350,)
line.add(title, x, y)
line.render('{}.html'.format(title))
line_(x, y, '气温')
运行结果:
可以在这基础上添加平均值、最大/小值,在Line.add()中添加mark_point=["average", "max", "min"],mark_line=["average", "max", "min"],mark_point可以标出目标点,mark_line可以做出于y轴的连线
line.add(title, x, y,
mark_point=["average", "max", "min"],
mark_line=["average", "max", "min"])
运行结果:
既然是显示温度,那y轴的苏户籍加上个℃是不是会更好,添加参数yaxis_formatter="°C"即可
运行结果:
还有很多参数如平滑度、折线图转阶梯图、折线面积图等,可以参考官网进行详细查看。
柱状图
基本使用:
数据:
时间:['2019-03-01星期五', '2019-03-02星期六', '2019-03-03星期日', '2019-03-04星期一', '2019-03-05星期二', '2019-03-06星期三', '2019-03-07星期四', '2019-03-08星期五', '2019-03-09星期六', '2019-03-10星期日', '2019-03-11星期一', '2019-03-12星期二']
温度:[58, 48, 33, 41, 34, 23, 19, 22, 23, 25, 48, 82]
代码实现:
def bar_(x, y, title):
fig = Bar('柱状图',
width=800,
height=350,)
fig.add(title, x, y)
fig.render('{}.html'.format(title))
bar_(x, y, '广州天气2')
运行结果:
查看一下add()方法
add(name, x_axis, y_axis,
is_stack=False,
bar_category_gap='20%', **kwargs)
name-> str 图例名称
x_axis-> list x坐标轴数据
y_axis-> list y坐标轴数据
is_stack-> bool 数据堆栈,同个类目轴上系列配置相同的stack值可以堆叠放置
bar_category_gap-> int / str 类目轴的柱状距离,当设置为0时柱状是紧挨着(直方图类型),最小为'20%'
参数is_convert交换XY轴
fig.add(title, x, y,
is_convert=True)
图例:
散点图
基本使用
add(name, x_axis, y_axis,
extra_data=None,
symbol_size=10, **kwargs)
名称-> str 图例名称
x_axis-> list:x坐标轴数据
y_axis->list: y坐标轴数据
extra_data->list[int]: 第三维度数据,x轴为第一个维度,y轴为第二个维度。(可在visualmap中将视图元素映射到第三维度)
extra_name->list[str]:的数据项的名称,可以为每个数据点指定一个名称。
symbol_size-> int:标记图形大小,交替为10
数据:
v1 = [10, 20, 30, 40, 50, 60]
v2 = [10, 20, 30, 40, 50, 60]
代码实现:
scatter = Scatter("散点图示例")
scatter.add("A", v1, v2)
scatter.render('散点图.html')
运行结果:
参数is_visualmap=True可以像热力图那样对数据进行渐变色
图例:
饼图
基本使用
add(name, attr, value,
radius=None,
center=None,
rosetype=None, **kwargs)
名称-> str:图例名称
attr-> list:属性名称
value-> list:属性所对应的值
radius-> list:饼图的尺寸,层叠的第一项是内部尺寸,第二项是外部薄片,尺寸为[
0,75 ]模式设置成比例,相对于容器高宽中较小的一个的一半
center- > list:饼图的中心(圆心)坐标,数组的第一项是横坐标,第二项是纵坐标,替换为[50,50]
设置设置成比例,设置成比例时第一项是相对于容器宽度,第二项是相对于容器高度
rosetype-> str:是否展示成南丁格尔图,通过尺寸区分数据大小,有'radius'和'area'两种模式。而是为'radius'
radius:半径圆心角展现数据的百分比,局部展现数据的大小
数据:
['第一产业(亿元)', '第二产业(亿元)', '第三产业(亿元)']
[64734, 366001, 469575]
实现代码:
def pie_(x, y, title='折线图'):
pie = Pie(title)
pie.add(title, x, y)
pie.render('{}.html'.format(title))
pie_(x, y, '产业')
运行结果:
总结:
每种类型的add()方法都有很多参数,我的建议是没必要死记硬背下来,没必要,大概知道能实现什么功能,用的时候再具体查就好了。