各位csdn的朋友们!原谅我最近没怎么更新博客,这一阵子在忙一个大数据竞赛的事情,具体的内容不太好分享!但是这几天找到一个可视化的神兵利器Echarts,用它做出来的图表真心好看,考虑到各位看官们对于python的热情高涨,我才找到了一个Echarts与Python结合的轮子:pyecharts。
前言
我们都知道python上的一款可视化工具matplotlib,而前些阵子做一个爬取拉勾网项目的时候用到了百度开源的一个可视化JS工具-Echarts,可视化类型非常多,但是得通过导入js库在Java Web项目上运行,平时用Python比较多,于是就在想有没有Python与Echarts结合的轮子。Google后,找到一个国人开发的一个Echarts与Python结合的轮子:pyecharts。
1.柱状图
# 导入柱状图-Bar
from pyecharts import Bar
# 设置行名
columns = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
# 设置数据
data1 = [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
data2 = [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]
# 设置柱状图的主标题与副标题
bar = Bar("柱状图", "一年的降水量与蒸发量")
# 添加柱状图的数据及配置项
bar.add("降水量", columns, data1, mark_line=["average"], mark_point=["max", "min"])
bar.add("蒸发量", columns, data2, mark_line=["average"], mark_point=["max", "min"])
# 生成本地文件(默认为.html文件)
bar.render(r'D:\pycharm projects\数据分析与科学可视化\Echarts图表\柱状图.html')
2.饼图
# 导入饼图Pie
from pyecharts import Pie
# 设置主标题与副标题,标题设置居中,设置宽度为900
pie = Pie("饼状图", "一年的降水量与蒸发量",title_pos='center',width=900)
# 加入数据,设置坐标位置为【25,50】,上方的colums选项取消显示
pie.add("降水量", columns, data1 ,center=[25,50],is_legend_show=False)
# 加入数据,设置坐标位置为【75,50】,上方的colums选项取消显示,显示label标签
pie.add("蒸发量", columns, data2 ,center=[75,50],is_legend_show=False,is_label_show=True)
# 保存图表
pie.render(r'D:\pycharm projects\数据分析与科学可视化\Echarts图表\饼图.html')
from pyecharts import Pie
attr = ['衬衫','羊毛衫','雪纺衫','裤子','高跟鞋','袜子']
v1 = [5,20,36,10,75,90]
pie = Pie('饼图-环形图示例',title_pos = 'center')
pie.add(
'',attr,v1, # '':图例名(不使用图例)
radius = [40,75], # 环形内外圆的半径
is_label_show = True, # 是否显示标签
label_text_color = None, # 标签颜色
legend_orient = 'vertical', # 图例垂直
legend_pos = 'left'
)
pie.render(r'D:\pycharm projects\数据分析与科学可视化\Echarts图表\饼图-环形图.html')
3.折线图
from pyecharts import Line
line = Line("折线图","一年的降水量与蒸发量")
# is_label_show是设置上方数据是否显示
line.add("降水量", columns, data1, is_label_show=True)
line.add("蒸发量", columns, data2, is_label_show=True)
line.render(r'D:\pycharm projects\数据分析与科学可视化\Echarts图表\折线图.html')
4.雷达图
from pyecharts import Radar
radar = Radar("雷达图", "一年的降水量与蒸发量")
# 由于雷达图传入的数据得为多维数据,所以这里需要做一下处理
radar_data1 = [[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]]
radar_data2 = [[2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]]
# 设置column的最大值,为了雷达图更为直观,这里的月份最大值设置有所不同
schema = [
("Jan", 5), ("Feb",10), ("Mar", 10),
("Apr", 50), ("May", 50), ("Jun", 200),
("Jul", 200), ("Aug", 200), ("Sep", 50),
("Oct", 50), ("Nov", 10), ("Dec", 5)
]
# 传入坐标
radar.config(schema)
radar.add("降水量",radar_data1)
# 一般默认为同一种颜色,这里为了便于区分,需要设置item的颜色
radar.add("蒸发量", radar_data2, item_color="#1C86EE")
radar.render(r'D:\pycharm projects\数据分析与科学可视化\Echarts图表\雷达图.html')
5.散点图
from pyecharts import Scatter
from pyecharts import Scatter
v1 = [5,20,35,50,65,80]
v2 = [10,20,30,40,50,60]
scatter = Scatter('散点-气泡示例图')
scatter.add('A',v1,v2)
scatter.add('B',v1[::-1], v2, # v1[::-1]代表切片倒序
is_visualmap=True, # 显示滑动条
symbol_size=30, # 显示图内标点大小
vasual_range_size=[20, 80]) # 显示滑动范围
scatter.render(r'D:\pycharm projects\数据分析与科学可视化\Echarts图表\散点图.html')
6.图标布局Grid
from pyecharts import Grid
# 设置折线图标题位置
line = Line("折线图","一年的降水量与蒸发量",title_top="45%")
line.add("降水量", columns, data1, is_label_show=True)
line.add("蒸发量", columns, data2, is_label_show=True)
grid = Grid()
# 设置两个图表的相对位置
grid.add(bar, grid_bottom="60%")
grid.add(line, grid_top="60%")
grid.render(r'D:\pycharm projects\数据分析与科学可视化\Echarts图表\图标布局Grid.html')
7.柱状图-折线图合并
from pyecharts import Overlap
overlap = Overlap()
bar = Bar("柱状图-折线图合并", "一年的降水量与蒸发量")
bar.add("降水量", columns, data1, mark_point=["max", "min"])
bar.add("蒸发量", columns, data2, mark_point=["max", "min"])
overlap.add(bar)
overlap.add(line)
overlap.render(r'D:\pycharm projects\数据分析与科学可视化\Echarts图表\柱状图-折线图合并.html')
8.词云图
from pyecharts import WordCloud
name = [
'Though', 'the answer', 'this question',
'may at first', 'seem to border', 'on the',
'absurd', 'reflection', 'will show', 'that there',
'is a', 'good deal', 'more in', 'it than meets', 'the eye'
]
value = [10000, 6189, 4556, 2356, 2233,
1895, 1456, 1255, 981, 875,
542, 462, 361, 265, 125]
worldcloud = WordCloud(width=1300, height=620)
worldcloud.add('', name, value, word_size_range=[20,100])
worldcloud.render(r'D:\pycharm projects\数据分析与科学可视化\Echarts图表\词云图.html')
9.极坐标系-堆叠柱状图
from pyecharts import Polar
radius = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
polar = Polar("极坐标系-堆叠柱状图示例", width=1200, height=600)
polar.add("A", [1, 2, 3, 4, 3, 5, 1], radius_data=radius, type='barRadius', is_stack=True)
polar.add("B", [2, 4, 6, 1, 2, 3, 1], radius_data=radius, type='barRadius', is_stack=True)
polar.add("C", [1, 2, 3, 4, 1, 2, 5], radius_data=radius, type='barRadius', is_stack=True)
polar.render(r'D:\pycharm projects\数据分析与科学可视化\Echarts图表\极坐标系-堆叠柱状图.html')
# 总结:
1.导入相关图表包
2.进行图表的基础设置,创建图表对象
3.利用add(方法进行数据输入与图表设置(可以使用print_ echarts_ _options()来输出所有可配置项)
4.利用render)方法来进行图表保存
这里只是我自己做的一些简单的图表类型,如果想了解pyecharts的使用教程的话,除了从网上去了解,还可以去阅读pyecharts的中文官方文档—皮耶察特美术馆 基于pyecharts的数据可视化库
<<<点击这个链接即可。
网上的教程相对而言简单通俗易懂一些。比较好的pyecharts的教学csdn博客,我推荐这个Python + PyEcharts——数据可视化,以及腾讯云社区的pyecharts文档《《《----强烈推荐这个社区!!!!!(重要的事情说三遍)。里面对于pyecharts的相关理解不仅通俗易懂,易上手,还具有观赏性。适合新手小白去探索!!!
还有一件重要的事是—我的pyecharts的代码是基于v0.5.11版本的,我之前Pyecharts代码不能用了,我自己尝试了一下,还是可以用的,后面才发现是因为现在pyecharts更新了,这个是pyecharts官网的原话==(pyecharts 分为 v0.5.X 和 v1 两个大版本,v0.5.X 和 v1 间不兼容,v1 是一个全新的版本)==
本篇博客就到此为止了,有什么需要补充的部分希望与大家沟通。