用Pyecharts做数据可视化,惊艳的你不要不要的!

Posted python 青少年编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Pyecharts做数据可视化,惊艳的你不要不要的!相关的知识,希望对你有一定的参考价值。

各位好,今天是大年初八,假期还没有结束呢,小编从来没觉得春节的假期这么长,今年是头一次,可能是长期宅在家里的缘故 !这几天小伙伴们一定要注意,关键时期,千万不要大意,尽量少出门。提个小建议,这几天如果没事,不妨在家里学习一下,如果能坚持下来,一定会有所收获的。总之,未来几天,我们还需继续宅在家里,配合国家,一起加油,打赢这场疫情!

用Pyecharts做数据可视化,惊艳的你不要不要的(四)!


好了,进入主题。今天继续谈用Python做数据可视化的问题。我们来介绍一下如何利用Pyecharts绘制极坐标图(Polar)与关系图(Graph)。

极坐标图(Polar)



极坐标,属于二维坐标系统,创始人是牛顿,主要应用于数学领域。在平面直角坐标系中我们用x和y来确定一个点,而在极坐标中,我们通常用“角度”与“到原点的距离”来确定一个点。极坐标图的绘制方法与前面介绍的其它图形的绘制方法类似,也需要经过构建图像对象、添加绘图数据、设置绘图参数与生成图像这四个步骤来进行实现。看下面一个实例。


这里有一个Excel数据文件,具体数据如下图。


用Pyecharts做数据可视化,惊艳的你不要不要的(四)!

接下来,将以上Excel数据导入到Python中,然后,我们利用Pyecharts来绘制极坐标图,将其显示出来。具体绘制过程如下。

首先,定义一个函数,用于读取Excel中的某一列数据。

from pyecharts import charts
import random
from pyecharts import charts
from pyecharts import options as opts
from pyecharts.globals import ThemeType
from pyecharts import faker
import xlrd
def read_col_excel(column_number):
# 打开文件
workbook = xlrd.open_workbook(r'city_example.xls')

# 根据sheet索引或者名称获取sheet内容
sheet2 = workbook.sheet_by_index(0)

# 获取整行和整列的值(数组)
cols = sheet2.col_values(column_number) # 获取第四行内容
return cols
然后,利用以下代码,来绘制极坐标图。
#极坐标图
radius =['2014年','2015年', '2016年', '2017年', '2018年', '2019年']
polar=charts.Polar(init_opts=opts.InitOpts(width='1500px',height='1200px',bg_color='#FFE4E1'))
polar.add_schema(radiusaxis_opts=opts.RadiusAxisOpts(data=radius,is_scale=False,),
angleaxis_opts=opts.AngleAxisOpts(axistick_opts=opts.AxisTickOpts(linestyle_opts=opts.LineStyleOpts(width=5)),
axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(width=5,color='#6A5ACD')),
axislabel_opts=opts.LabelOpts(font_size=20)))
for i in range(7):
data=read_col_excel(i)
city=data[0]
data.pop(0)
polar.add(city,data,type_='bar',stack='stack0')
print(city)
print(data)
polar.set_global_opts(legend_opts=opts.LegendOpts(pos_right='100px',pos_bottom='50px',textstyle_opts=opts.TextStyleOpts(font_size=15)),
yaxis_opts=opts.AxisOpts(min_=10,max_=150,is_show=True),
title_opts=opts.TitleOpts('Polar-示例图',subtitle='极坐标图',title_textstyle_opts=opts.TextStyleOpts(font_size=30)),)
polar.render_notebook()
以上代码的作用是在极坐标图中,按年份,显示不同省份的数据情况。在Jupyter Notebook中,运行上述代码后,绘制的极坐标图效果如下。

用Pyecharts做数据可视化,惊艳的你不要不要的(四)!


当然,还可以通过修改以上代码中的一些参数的设置,来改变图像的一些基本特征(包括背景色、线型等等),大家可以自行去研究。


关系图(Graph)



关系图(Graph)主要用于去揭示不同对象间的相互联系。在大数据的分析与挖掘中,关系图的应用十分广泛。

用Pyecharts做数据可视化,惊艳的你不要不要的(四)!

接下来通过一个实例,来介绍一下如何利用Pyecharts来绘制关系图。我们直接上代码吧。
from pyecharts import options as opts
from pyecharts.charts import Graph
from pyecharts.globals import ThemeType

nodes = [
{"name": "结点1", "symbolSize": 30},
{"name": "结点2", "symbolSize": 10},
{"name": "结点3", "symbolSize": 20},
{"name": "结点4", "symbolSize": 10},
{"name": "结点5", "symbolSize": 10},
{"name": "结点6", "symbolSize": 10},
{"name": "结点7", "symbolSize": 10},
{"name": "结点8", "symbolSize": 30},
{"name": "结点9", "symbolSize": 10},
{"name": "结点10", "symbolSize": 30},
{"name": "结点11", "symbolSize": 10},
{"name": "结点12", "symbolSize": 30},
{"name": "结点13", "symbolSize": 10},
{"name": "结点14", "symbolSize": 30},
{"name": "结点15", "symbolSize": 10},
{"name": "结点16", "symbolSize": 30},
]
links = []
for i in range(len(nodes)):
#if i % 2 == 0:
for j in nodes:
links.append({"source": nodes[i]['name'], "target": j.get("name")})

graph= (
Graph(init_opts=opts.InitOpts(theme=ThemeType.DARK))
.add("节点间的指向关系", nodes, links, repulsion=8000,
linestyle_opts=opts.LineStyleOpts(width=2,type_='dot',color='#D2691E'),
label_opts=opts.LabelOpts(color='#0000FF',font_size=15,font_weight='bold'),edge_length=70,
)
.set_global_opts(title_opts=opts.TitleOpts(title="Graph-基本示例"))
.set_series_opts()


)
graph.render_notebook()
以上代码中,在绘制关系图是,最关键的是要构造“结点集”nodes与“关系集”links,其中的 “关系集 ”links是由“结点集”nodes构造而成。需要注意的是,这两类数据均为各个元素为“字典”的列表类型。上例中,利用以下代码
links = []
for i in range(len(nodes)):
for j in nodes:
links.append({"source": nodes[i]['name'], "target": j.get("name")})
实现了每一个节点均与其余极点存在指向关系。在Jupyter Notebook中,运行上述代码后,绘制的关系图效果如下。

用Pyecharts做数据可视化,惊艳的你不要不要的(四)!


以上代码中通过修改 关系集 ”links,
links = []
for i in range(len(nodes)):
if i % 2 == 0:
for j in nodes:
links.append({"source": nodes[i]['name'], "target": j.get("name")})
让下标  i 为偶数的节点与其余极点之间存在指向关系我们还可以获得不同结构的关系图。最终,运行后效果如下。

用Pyecharts做数据可视化,惊艳的你不要不要的(四)!


-end-


Python 青少年编程





python数据分析系列推荐阅读: 













以上是关于用Pyecharts做数据可视化,惊艳的你不要不要的!的主要内容,如果未能解决你的问题,请参考以下文章

Pyecharts20W条淘宝文胸商品评论数据可视化~

数据可视化之“疫情图”

python数据可视化:pyecharts

爬取疫情数据,以django+pyecharts实现数据可视化web网页

Bokeh 这可视化图表做的,也太好看了吧!

Python数据可视化神器——pyecharts的超详细使用指南!