每天一个库,今天学习pyecharts
开始
大家好呀!今天我们继续来学习pyecharts,上一次我们绘制了基础的几个图形,包括柱状图、折线图、饼图、环状图、多图等等,今天我们继续学习使用pyecharts来进行其它图的绘制。
极坐标图
极坐标图(Polar Coordinates)是一种以极坐标系为基础的可视化图表,适合展示周期性数据、方向分布或具有角度特征的数据。它主要通过雷达图(Radar)、极坐标柱状图(Bar in Polar,也叫玫瑰图)和极坐标散点图(Scatter in Polar)等形式呈现,在这里我们会给大家展示雷达图和极坐标柱状图的绘制。
雷达图 Radar
雷达图的绘制同样遵循四步走,忘记的朋油~可以去上一节回顾一下。第一步,进行实例化,我们要进行雷达图的绘制。第二步,添加轴以及填充数据。第三步,使用全局配置项对标题进行了修改。第四步也就是最后一步,用.render()渲染生成一个独立的网页。大功告成ヾ(✿゚▽゚)ノ
#雷达图
from pyecharts.charts import Radar # Radar库导入
s_radar = Radar() #实例化
s_radar.add_schema(schema=[ #添加架构(类似轴)
opts.RadarIndicatorItem(name="temp",max_=30), #设置各项的名称以及最大值
opts.RadarIndicatorItem(name="atemp",max_=40),
opts.RadarIndicatorItem(name="humidity",max_=100),
opts.RadarIndicatorItem(name="windspeed",max_=20),
opts.RadarIndicatorItem(name="casual",max_=50),
opts.RadarIndicatorItem(name="registered",max_=200)],
splitarea_opt=opts.SplitAreaOpts(is_show=True,
areastyle_opts=opts.AreaStyleOpts(opacity=1))
)
s_radar.add(series_name="春天",
data=[avg_2011.iloc[0].tolist()],
color='#825E8C',
areastyle_opts=opts.AreaStyleOpts(opacity=0.1))
s_radar.add(series_name="夏天",data=[avg_2011.iloc[1].tolist()],color='#42A881')
s_radar.add(series_name="秋天",data=[avg_2011.iloc[2].tolist()],color='#F27405')
s_radar.add(series_name="冬天",data=[avg_2011.iloc[3].tolist()],color='#35557E')
s_radar.set_global_opts(
title_opts=opts.TitleOpts(title="2011各季度气候与用户量雷达图")
)
s_radar.render('radar.html')
当然,我们还可以设置显示范围,比如,只显示春天的数据。
玫瑰图 Polar
from pyecharts.charts import Polar
pol = Polar() #实例化
pol.add_schema(angleaxis_opts=opts.AngleAxisOpts(data=month)) #添加轴
pol.add('casual',casual,type_="bar",stack='1')
pol.add('registered',registered,type_="bar",stack='1') #分两次画图,设定两个系列的柱子堆叠层级一致
pol.set_global_opts(title_opts=opts.TitleOpts(title="2011年各月各类用户量玫瑰图")) #添加标题
pol.render('polar.html') #渲染成html文件
平行坐标系图 Parallel
平行坐标系图(Parallel Coordinates)是一种用于可视化多维数据的强大工具,尤其适合展示和分析具有多个属性的数据集之间的关系、模式和异常值。
基础平行坐标系
学了这么多,大家肯定会发现,pyecharts中各种图的绘制都大差不差,大致就是按照四步走,这里不再过多叙述,大家可以自行体会
#基础平行坐标系图Parallel()
from pyecharts.charts import Parallel
#Parallel();.add_schema();.add()函数添加数据相关元素
par = Parallel() #实例化创建平行坐标系对象
par.add_schema(schema= [opts.ParallelAxisOpts(dim=0,name="temp"), opts.ParallelAxisOpts(dim=1,name="humidity"), opts.ParallelAxisOpts(dim=2,name="windspeed"), opts.ParallelAxisOpts(dim=3,name="weather"), opts.ParallelAxisOpts(dim=4,name="count")
]) #添加轴
par.add(series_name="weather",data=weather2011_9.values.tolist()) #添加数据
par.set_global_opts(title_opts=opts.TitleOpts(title="天气分布平行坐标系图")) #添加标题
par.render('Parallel.html')
分类平行坐标图
好的,我们现在来进阶一下,从上面我们可以观察到基础平行坐标系图绘制时单一颜色导致线条密集重叠(过度绘制),难以区分不同天气模式,这时候我们就需要绘制分类平行系图了。
这时我们需要简单处理一下我们的数据,将其按类别拆分,再以此add到我们的图中并设置不同的颜色,其实也不难对吧ヽ( ̄▽ ̄)ノ
#平行坐标图+色调
w1 = weather2011_9.loc[weather2011_9['weather']==1,:]
w2 = weather2011_9.loc[weather2011_9['weather']==2,:]
w3 = weather2011_9.loc[weather2011_9['weather']==3,:]
par = Parallel()
par.add_schema(schema=[opts.ParallelAxisOpts(dim=0,name="temp"), opts.ParallelAxisOpts(dim=1,name="humidity",min_=40), opts.ParallelAxisOpts(dim=2,name="windspeed",min_=0,max_=45), opts.ParallelAxisOpts(dim=3,name="weather",min_=0,max_=3), opts.ParallelAxisOpts(dim=4,name="count")
])
par.add(series_name="w1",data=w1.values.tolist())
par.add(series_name="w2",data=w2.values.tolist(),linestyle_opts=opts.LineStyleOpts(color='#84C1FF'))
par.add(series_name="w3",data=w3.values.tolist(),linestyle_opts=opts.LineStyleOpts(color='#73BF00'))
par.set_global_opts(title_opts=opts.TitleOpts(title="天气分布平行坐标系图"))
par.render('Parallel+.html')
这样按颜色区分类别就很清晰明了了
日历图 Calendar
日历图(Calendar)是用于展示时间序列数据的可视化工具,能够直观呈现特定时间段内数据的分布和变化趋势,下面教我们如何绘制
#日历图Calendar()
from pyecharts.charts import Calendar
day_cal = Calendar() # 创建Calendar对象实例
day_cal.add("count",
[list(z) for z in zip(x,x_value)],
calendar_opts = opts.CalendarOpts(range_='2011') # 设置日历范围为2011年
)
day_cal.set_global_opts(visualmap_opts = opts.VisualMapOpts(min_=0, # 颜色映射最小值
max_=6000, # 颜色映射最大值
is_piecewise=True, #是否分段
orient="horizontal", # 颜色条方向(horizontal水平 / vertical垂直)
pos_top="230px",
pos_left="200px"),
title_opts=opts.TitleOpts(title="2011年日历图")
)
day_cal.render('calendar.html')
效果如下:
地理图表
地理图表相关的类用于展示地理信息数据,下面讲两种主要地理图表类Geo和Map,这两种方法对省份类别数据的处理稍有不同,下面我们来看一下
Geo
要注意,在使用Geo时,类中的省份不能包含“省”、“市”、“自治区”、“壮族”、“回族”以及“维吾尔”等字眼,因此大家使用前需要对省份类别数据进行简单的处理。
heatmap + 连续色谱
# heatmap+连续色谱
from pyecharts.charts import Geo
gdp_heatmap = Geo() #实例化
gdp_heatmap.add_schema(maptype="china") # 设置地图类型
gdp_heatmap.add("province_gdp",
[list(z) for z in zip(province_name1, gdp2020)],
type_='heatmap') # 添加数据
gdp_heatmap.set_global_opts(visualmap_opts = opts.VisualMapOpts(is_piecewise=False,
min_=0,
max_=120000),
title_opts = opts.TitleOpts(title="2020年全国GDP地理热图")) # 配置全局配置项
gdp_heatmap.render("全国GDP地理热图.html") # 使用render方法保存为html文件
scatter + 分段色谱
scatter和heatmap类似,只不过表现形式不同,是以点的形式表现数值
# scatter + 分段色谱
from pyecharts.globals import ChartType
gdp_scatter = Geo() # 实例化
gdp_scatter.add_schema(maptype="china") # 设置地图类型
gdp_scatter.add("province_gdp",
[list(z) for z in zip(province_name1,gdp2020)],
type_=ChartType.EFFECT_SCATTER) # 添加数据
gdp_scatter.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) # 配置视觉映射配置项
gdp_scatter.set_global_opts(visualmap_opts=opts.VisualMapOpts(is_piecewise=True,
min_=0,
max_=120000),
title_opts = opts.TitleOpts(title="全国GDP地理点坐标图")) # 配置全局配置项
gdp_scatter.render("GDP地理点坐标图.html") #渲染成html文件
Map
Map 和 Geo 不同的点在于 Map 对类中的省份和直辖市的名称中要包含“省”、“市”、“自治区”、“壮族”、“回族”以及“维吾尔”等字眼,因此在数据处理时要加以注意。
# Map() + 连续色谱 注意Map类中省份需要包含省、市。自治区等字眼
from pyecharts.charts import Map
from pyecharts import options as opts
gdp_map = Map() # 实例化
gdp_map.add("province_gdp",
[list(z) for z in zip(province_name,gdp2020)],
maptype="china",
is_roam=False,
# label_opts=opts.LabelOpts(is_show=False) #不缩放
)
gdp_map.set_global_opts(visualmap_opts=opts.VisualMapOpts(is_piecewise=False,
min_=0,
max_=120000),
title_opts = opts.TitleOpts(title="全国GDP填充地图",subtitle='单位:亿元'),
legend_opts=opts.LegendOpts(is_show=False))
gdp_map.render("全国GDP填充地图.html")
好的今天就到这里吧,成功只差一步,下次我们去学习如何制作一张完整的可视化大屏,下次见( ̄▽ ̄)~*
创作不易,亲亲求点赞求收藏呀ヾ(=・ω・=)o