西安的商城网站建设,html网页实例,wordpress后台文章自定义字段面板,外链网站大全目录 文章导航一、介绍[✨ 特性]二、安装Pyecharts三、主题风格四、占比类图表1、饼图2、环形图3、玫瑰图4、玫瑰图-多图5、堆叠条形图6、百分比堆叠条形图 五、比较排序类1、条形图2、雷达图3、词云图4、漏斗图 六、趋势类图表1、折线图2、堆叠折线图3、面积图4、堆叠面积图 七… 目录 文章导航一、介绍[✨ 特性]二、安装Pyecharts三、主题风格四、占比类图表1、饼图2、环形图3、玫瑰图4、玫瑰图-多图5、堆叠条形图6、百分比堆叠条形图 五、比较排序类1、条形图2、雷达图3、词云图4、漏斗图 六、趋势类图表1、折线图2、堆叠折线图3、面积图4、堆叠面积图 七、频率分布类1、直方图2、箱线图 八、关系类图表1、散点图2、多图例散点图3、气泡图4、热力图 九、地理类图表1、地图 十、突出类图表1、仪表盘 十一、组合图表1、overlap2、grid-并行多图3、page-顺序多图4、tab-选项卡多图5、timeline-时间线轮播多图 文章导航
【一 简明数据分析进阶路径介绍文章导航】
一、介绍
Echarts 是一个由百度开源的数据可视化凭借着良好的交互性精巧的图表设计得到了众多开发者的认可。而 Python 是一门富有表达力的语言很适合用于数据处理。当数据分析遇上数据可视化时pyecharts 诞生了。
[✨ 特性]
简洁的 API 设计使用如丝滑般流畅支持链式调用囊括了 30 种常见图表应有尽有支持主流 Notebook 环境Jupyter Notebook 和 JupyterLab可轻松集成至 FlaskDjango 等主流 Web 框架高度灵活的配置项可轻松搭配出精美的图表详细的文档和示例帮助开发者更快的上手项目多达 400 地图文件以及原生的百度地图为地理数据可视化提供强有力的支持
二、安装Pyecharts
pip install pyecharts三、主题风格
pyecharts有多种风格可参考 https://pyecharts.org/#/zh-cn/themes
四、占比类图表
1、饼图
from pyecharts import options as opts
from pyecharts.charts import Pie
import pandas as pd
from pyecharts.globals import ThemeTypedf pd.read_csv(train.csv)# 按SaleCondition字段统计记录数
sale_condition_counts df[SaleCondition].value_counts().reset_index()
sale_condition_counts.columns [SaleCondition, Count] # 将统计结果转换为列表用于pyecharts饼图
data_pair [(row[SaleCondition], row[Count]) for index, row in sale_condition_counts.iterrows()] c (Pie(init_optsopts.InitOpts( themeThemeType.WALDEN)).add(, data_pair)#.set_colors([blue, green, yellow, red, pink, orange, purple]).set_global_opts(title_optsopts.TitleOpts(title饼图)).set_series_opts(label_optsopts.LabelOpts(formatter{b}: {c}))
)
# 渲染图表到notebook
c.render_notebook() 2、环形图
from pyecharts import options as opts
from pyecharts.charts import Pie
import pandas as pd
from pyecharts.globals import ThemeTypedf pd.read_csv(train.csv)# 按SaleCondition字段统计记录数
sale_condition_counts df[SaleCondition].value_counts().reset_index()
sale_condition_counts.columns [SaleCondition, Count] # 将统计结果转换为列表用于pyecharts饼图
data_pair [(row[SaleCondition], row[Count]) for index, row in sale_condition_counts.iterrows()] c (Pie(init_optsopts.InitOpts( themeThemeType.WALDEN)).add(, data_pair, radius[40%, 75%])#.set_colors([blue, green, yellow, red, pink, orange, purple]).set_global_opts(title_optsopts.TitleOpts(title环形图)).set_series_opts(label_optsopts.LabelOpts(formatter{b}: {c}))
)
# 渲染图表到notebook
c.render_notebook()3、玫瑰图
from pyecharts import options as opts
from pyecharts.charts import Pie
import pandas as pd
from pyecharts.globals import ThemeTypedf pd.read_csv(train.csv)# 按SaleCondition字段统计记录数
sale_condition_counts df[SaleCondition].value_counts().reset_index()
sale_condition_counts.columns [SaleCondition, Count] # 将统计结果转换为列表用于pyecharts饼图
data_pair [(row[SaleCondition], row[Count]) for index, row in sale_condition_counts.iterrows()] c (Pie(init_optsopts.InitOpts( themeThemeType.WALDEN)).add(, data_pair, radius[40%, 75%],rosetypearea) #radius/area.set_global_opts(title_optsopts.TitleOpts(title玫瑰图)).set_series_opts(label_optsopts.LabelOpts(formatter{b}: {c}))
)
# 渲染图表到notebook
c.render_notebook()4、玫瑰图-多图
from pyecharts import options as opts
from pyecharts.charts import Pie
import pandas as pd
from pyecharts.globals import ThemeTypedf pd.read_csv(train.csv)# 按SaleCondition字段统计记录数
sale_condition_counts df[SaleCondition].value_counts().reset_index()
sale_condition_counts.columns [SaleCondition, Count] # 将统计结果转换为列表用于pyecharts饼图
data_pair [(row[SaleCondition], row[Count]) for index, row in sale_condition_counts.iterrows()] c (Pie(init_optsopts.InitOpts( themeThemeType.WALDEN)).add(, data_pair, radius[40%, 75%],center[25%, 50%],rosetypearea) #radius/area.add(, data_pair, radius[40%, 75%],center[75%, 50%],rosetypearea) #radius/area.set_global_opts(title_optsopts.TitleOpts(title玫瑰图-多图)).set_series_opts(label_optsopts.LabelOpts(formatter{b}: {c}))
)
# 渲染图表到notebook
c.render_notebook() 5、堆叠条形图
from pyecharts import options as opts
from pyecharts.charts import Bar
import pandas as pd
from pyecharts.globals import ThemeTypedf pd.read_csv(train.csv) result df.groupby(YrSold).agg({ OverallQual: sum, GarageCars: sum, FullBath: sum
}).reset_index() result.columns [YrSold, OverallQual, GarageCars, FullBath] result_sorted_des result.sort_values(YrSold, ascendingTrue)xaxis result_sorted_des[YrSold].tolist()
yaxis_1 result_sorted_des[OverallQual].tolist()
yaxis_2 result_sorted_des[GarageCars].tolist()
yaxis_3 result_sorted_des[FullBath].tolist()c (Bar(init_optsopts.InitOpts( themeThemeType.WALDEN)).add_xaxis(xaxis).add_yaxis(商家A, yaxis_1, stackstack1).add_yaxis(商家B, yaxis_2, stackstack1).add_yaxis(商家C, yaxis_3, stackstack1).set_series_opts(label_optsopts.LabelOpts(is_showFalse)).set_global_opts(title_optsopts.TitleOpts(title堆叠条形图))
)
# 渲染图表到notebook
c.render_notebook() 6、百分比堆叠条形图
from pyecharts import options as opts
from pyecharts.charts import Bar
import pandas as pd
from pyecharts.globals import ThemeType # 读取数据并处理
df pd.read_csv(train.csv)
result df.groupby(YrSold).agg({ OverallQual: sum, GarageCars: sum, FullBath: sum
}).reset_index()
result.columns [YrSold, OverallQual, GarageCars, FullBath]
result_sorted_des result.sort_values(YrSold, ascendingTrue) # 计算每个年份的累计和
total_per_year result_sorted_des[[OverallQual, GarageCars, FullBath]].sum(axis1) # 计算每个特征的百分比
result_sorted_des[OverallQual_pct] (result_sorted_des[OverallQual] / total_per_year).round(2) * 100
result_sorted_des[GarageCars_pct] (result_sorted_des[GarageCars] / total_per_year).round(2) * 100
result_sorted_des[FullBath_pct] (result_sorted_des[FullBath] / total_per_year).round(2) * 100 # 提取数据用于图表
xaxis result_sorted_des[YrSold].tolist()
yaxis_1 result_sorted_des[OverallQual_pct].tolist()
yaxis_2 result_sorted_des[GarageCars_pct].tolist()
yaxis_3 result_sorted_des[FullBath_pct].tolist() # 创建百分比堆叠条形图
c ( Bar(init_optsopts.InitOpts(themeThemeType.WALDEN)) .add_xaxis(xaxis) .add_yaxis(OverallQual, yaxis_1, stackstack1) .add_yaxis(GarageCars, yaxis_2, stackstack1) .add_yaxis(FullBath, yaxis_3, stackstack1) .set_series_opts(label_optsopts.LabelOpts(is_showTrue, positionright,formatter{c}%, rotate0)) # 显示百分比 .set_global_opts(tooltip_optsopts.TooltipOpts(is_showTrue, triggeritem),title_optsopts.TitleOpts(title百分比堆叠条形图))
) # 渲染图表到notebook
c.render_notebook() 五、比较排序类
1、条形图
from pyecharts import options as opts
from pyecharts.charts import Bar
import pandas as pd
from pyecharts.globals import ThemeTypedf pd.read_csv(train.csv) result df.groupby(YrSold).agg({ OverallQual: sum, GarageCars: sum, FullBath: sum
}).reset_index() result.columns [YrSold, OverallQual, GarageCars, FullBath] result_sorted_desc result.sort_values(YrSold, ascendingFalse)xaxis result_sorted_desc[YrSold].tolist()
yaxis_1 result_sorted_desc[OverallQual].tolist()
yaxis_2 result_sorted_desc[GarageCars].tolist()
yaxis_3 result_sorted_desc[FullBath].tolist()c (Bar(init_optsopts.InitOpts( themeThemeType.WALDEN)).add_xaxis(xaxis).add_yaxis(商家A, yaxis_1).add_yaxis(商家B, yaxis_2).add_yaxis(商家C, yaxis_3)
# .reversal_axis() # 坐标轴反转.set_series_opts(label_optsopts.LabelOpts(is_showFalse)).set_global_opts(title_optsopts.TitleOpts(title条形图))
)
# 渲染图表到notebook
c.render_notebook() 2、雷达图
from pyecharts import options as opts
from pyecharts.charts import Radar
from pyecharts.globals import ThemeType v1 [[4300, 10000, 28000, 35000, 50000, 19000]]
v2 [[5000, 14000, 28000, 31000, 42000, 21000]]
c (Radar(init_optsopts.InitOpts(themeThemeType.WALDEN)).add_schema(schema[opts.RadarIndicatorItem(name销售, max_6500),opts.RadarIndicatorItem(name管理, max_16000),opts.RadarIndicatorItem(name信息技术, max_30000),opts.RadarIndicatorItem(name客服, max_38000),opts.RadarIndicatorItem(name研发, max_52000),opts.RadarIndicatorItem(name市场, max_25000),]).add(预算分配, v1,areastyle_optsopts.AreaStyleOpts(opacity0.1,color#CD0000),linestyle_optsopts.LineStyleOpts(color#CD0000)).add(实际开销, v2,areastyle_optsopts.AreaStyleOpts(opacity0.2,color#5CACEE),linestyle_optsopts.LineStyleOpts(color#5CACEE)).set_series_opts(label_optsopts.LabelOpts(is_showFalse)).set_global_opts(#legend_optsopts.LegendOpts(selected_modesingle),title_optsopts.TitleOpts(title雷达图),))# 渲染图表到notebook
c.render_notebook() 3、词云图
from pyecharts import options as opts
from pyecharts.charts import WordCloud
from pyecharts.globals import SymbolTypewords [(Sam S Club, 10000),(Macys, 6181),(Amy Schumer, 4386),(Jurassic World, 4055),(Charter Communications, 2467),(Chick Fil A, 2244),(Planet Fitness, 1868),(Pitch Perfect, 1484),(Express, 1112),(Home, 865),(Johnny Depp, 847),(Lena Dunham, 582),(Lewis Hamilton, 555),(KXAN, 550),(Mary Ellen Mark, 462),(Farrah Abraham, 366),(Rita Ora, 360),(Serena Williams, 282),(NCAA baseball tournament, 273),(Point Break, 265),
]
c (WordCloud(init_optsopts.InitOpts(themeThemeType.WALDEN)).add(, words, word_size_range[20, 100], shapeSymbolType.DIAMOND).set_global_opts(title_optsopts.TitleOpts(title词云图))
)# 渲染图表到notebook
c.render_notebook() 4、漏斗图
import pyecharts.options as opts
from pyecharts.charts import Funnelx_data [展现, 点击, 访问, 咨询, 订单]
y_data [100, 80, 60, 40, 20]data [[x_data[i], y_data[i]] for i in range(len(x_data))]c (Funnel().add(series_name,data_pairdata,gap2,tooltip_optsopts.TooltipOpts(triggeritem, formatter{b} : {c}%),label_optsopts.LabelOpts(is_showTrue, positioninside),itemstyle_optsopts.ItemStyleOpts(border_color#fff, border_width1),).set_global_opts(title_optsopts.TitleOpts(title漏斗图, subtitle漏斗图)).set_series_opts(label_optsopts.LabelOpts(is_showTrue, positionright,formatter{c}, rotate0)) # 显示内容
)# 渲染图表到notebook
c.render_notebook() 六、趋势类图表
1、折线图
from pyecharts import options as opts
from pyecharts.charts import Line
import pandas as pd
from pyecharts.globals import ThemeTypedf pd.read_csv(train.csv) result df.groupby(YrSold).agg({ OverallQual: sum, GarageCars: sum, FullBath: sum
}).reset_index() result.columns [YrSold, OverallQual, GarageCars, FullBath] result_sorted_desc result.sort_values(YrSold, ascendingFalse)xaxis result_sorted_desc[YrSold].tolist()
xaxis [str(i) for i in xaxis] #x轴不能用数字
yaxis_1 result_sorted_desc[OverallQual].tolist()
yaxis_2 result_sorted_desc[GarageCars].tolist()
yaxis_3 result_sorted_desc[FullBath].tolist()c (Line(init_optsopts.InitOpts( themeThemeType.WALDEN)).add_xaxis(xaxis).add_yaxis(OverallQual, yaxis_1).add_yaxis(GarageCars, yaxis_2).add_yaxis(FullBath, yaxis_3)#.set_series_opts(label_optsopts.LabelOpts(is_showFalse)).set_global_opts(title_optsopts.TitleOpts(title折线图))
)
# 渲染图表到notebook
c.render_notebook() 2、堆叠折线图
from pyecharts import options as opts
from pyecharts.charts import Line
import pandas as pd
from pyecharts.globals import ThemeTypedf pd.read_csv(train.csv) result df.groupby(YrSold).agg({ OverallQual: sum, GarageCars: sum, FullBath: sum
}).reset_index() result.columns [YrSold, OverallQual, GarageCars, FullBath] result_sorted_desc result.sort_values(YrSold, ascendingFalse)xaxis result_sorted_desc[YrSold].tolist()
xaxis [str(i) for i in xaxis] #x轴不能用数字
yaxis_1 result_sorted_desc[OverallQual].tolist()
yaxis_2 result_sorted_desc[GarageCars].tolist()
yaxis_3 result_sorted_desc[FullBath].tolist()c (Line(init_optsopts.InitOpts( themeThemeType.WALDEN)).add_xaxis(xaxis_dataxaxis).add_yaxis(series_nameOverallQual,stack总量,y_axisyaxis_1,
# areastyle_optsopts.AreaStyleOpts(opacity0.5),label_optsopts.LabelOpts(is_showFalse),).add_yaxis(series_nameGarageCars,stack总量,y_axisyaxis_2,
# areastyle_optsopts.AreaStyleOpts(opacity0.5),label_optsopts.LabelOpts(is_showFalse),).add_yaxis(series_nameFullBath,stack总量,y_axisyaxis_3,
# areastyle_optsopts.AreaStyleOpts(opacity0.5),label_optsopts.LabelOpts(is_showFalse),).set_global_opts(title_optsopts.TitleOpts(title堆叠折线图),tooltip_optsopts.TooltipOpts(triggeraxis, axis_pointer_typecross),yaxis_optsopts.AxisOpts(type_value,axistick_optsopts.AxisTickOpts(is_showTrue),splitline_optsopts.SplitLineOpts(is_showTrue),),xaxis_optsopts.AxisOpts(type_category, boundary_gapFalse),)
)
# 渲染图表到notebook
c.render_notebook() 3、面积图
from pyecharts import options as opts
from pyecharts.charts import Line
import pandas as pd
from pyecharts.globals import ThemeTypedf pd.read_csv(train.csv) result df.groupby(YrSold).agg({ OverallQual: sum, GarageCars: sum, FullBath: sum
}).reset_index() result.columns [YrSold, OverallQual, GarageCars, FullBath] result_sorted_desc result.sort_values(YrSold, ascendingFalse)xaxis result_sorted_desc[YrSold].tolist()
xaxis [str(i) for i in xaxis] #x轴不能用数字
yaxis_1 result_sorted_desc[OverallQual].tolist()
yaxis_2 result_sorted_desc[GarageCars].tolist()
yaxis_3 result_sorted_desc[FullBath].tolist()c (Line(init_optsopts.InitOpts( themeThemeType.WALDEN)).add_xaxis(xaxis).add_yaxis(OverallQual, yaxis_1, areastyle_optsopts.AreaStyleOpts(opacity0.5)).add_yaxis(GarageCars, yaxis_2, areastyle_optsopts.AreaStyleOpts(opacity0.5)).add_yaxis(FullBath, yaxis_3, areastyle_optsopts.AreaStyleOpts(opacity0.5))#.set_series_opts(label_optsopts.LabelOpts(is_showFalse)).set_global_opts(title_optsopts.TitleOpts(title面积图))
)
# 渲染图表到notebook
c.render_notebook() 4、堆叠面积图
from pyecharts import options as opts
from pyecharts.charts import Line
import pandas as pd
from pyecharts.globals import ThemeTypedf pd.read_csv(train.csv) result df.groupby(YrSold).agg({ OverallQual: sum, GarageCars: sum, FullBath: sum
}).reset_index() result.columns [YrSold, OverallQual, GarageCars, FullBath] result_sorted_desc result.sort_values(YrSold, ascendingFalse)xaxis result_sorted_desc[YrSold].tolist()
xaxis [str(i) for i in xaxis] #x轴不能用数字
yaxis_1 result_sorted_desc[OverallQual].tolist()
yaxis_2 result_sorted_desc[GarageCars].tolist()
yaxis_3 result_sorted_desc[FullBath].tolist()c (Line(init_optsopts.InitOpts( themeThemeType.WALDEN)).add_xaxis(xaxis_dataxaxis).add_yaxis(series_nameOverallQual,stack总量,y_axisyaxis_1,areastyle_optsopts.AreaStyleOpts(opacity0.5),label_optsopts.LabelOpts(is_showFalse),).add_yaxis(series_nameGarageCars,stack总量,y_axisyaxis_2,areastyle_optsopts.AreaStyleOpts(opacity0.5),label_optsopts.LabelOpts(is_showFalse),).add_yaxis(series_nameFullBath,stack总量,y_axisyaxis_3,areastyle_optsopts.AreaStyleOpts(opacity0.5),label_optsopts.LabelOpts(is_showFalse),).set_global_opts(title_optsopts.TitleOpts(title堆叠面积图),tooltip_optsopts.TooltipOpts(triggeraxis, axis_pointer_typecross),yaxis_optsopts.AxisOpts(type_value,axistick_optsopts.AxisTickOpts(is_showTrue),splitline_optsopts.SplitLineOpts(is_showTrue),),xaxis_optsopts.AxisOpts(type_category, boundary_gapFalse),)
)
# 渲染图表到notebook
c.render_notebook() 七、频率分布类
1、直方图
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Fakerdf pd.read_csv(train.csv).head(100)sale_condition_counts df[YearBuilt].value_counts().reset_index()
sale_condition_counts.columns [YearBuilt, Count]x_data sale_condition_counts.YearBuilt.tolist()
y_data sale_condition_counts.Count.tolist()c (Bar(init_optsopts.InitOpts( themeThemeType.WALDEN)).add_xaxis(x_data).add_yaxis(Count, y_data, category_gap0).set_global_opts(title_optsopts.TitleOpts(title直方图))
)# 渲染图表到notebook
c.render_notebook() 2、箱线图
from pyecharts import options as opts
from pyecharts.charts import Boxplotv1 [[850, 740, 900, 1070, 930, 850, 950, 980, 980, 880, 1000, 980],[960, 940, 960, 940, 880, 800, 850, 880, 900, 840, 830, 790],
]
v2 [[890, 810, 810, 820, 800, 770, 760, 740, 750, 760, 910, 920],[890, 840, 780, 810, 760, 810, 790, 810, 820, 850, 870, 870],
]c (Boxplot(init_optsopts.InitOpts( themeThemeType.WALDEN)).add_xaxis([expr1, expr2]).add_yaxis(A, v1).add_yaxis(B, v2).set_global_opts(title_optsopts.TitleOpts(title箱线图))
)# 渲染图表到notebook
c.render_notebook() 八、关系类图表
1、散点图
from pyecharts import options as opts
from pyecharts.charts import Scatter
from pyecharts.faker import Faker
import pandas as pd
from pyecharts.globals import ThemeTypedf pd.read_csv(train.csv).head(100)
df df.sort_values(GrLivArea, ascendingTrue)
df[[SalePrice, OverallQual, GrLivArea, GarageCars, TotalBsmtSF, FullBath, YearBuilt]]
x_data df.GrLivArea.to_list()
x_data [str(i) for i in x_data] #x轴不能用数字
y_data df.SalePrice.to_list()c (Scatter(init_optsopts.InitOpts( themeThemeType.WALDEN)).add_xaxis(x_data).add_yaxis(GrLivArea, y_data).set_series_opts(label_optsopts.LabelOpts(is_showFalse, positionright,formatter{c}, rotate0)) .set_global_opts(title_optsopts.TitleOpts(title散点图),visualmap_optsopts.VisualMapOpts(max_500000, min_100000),)
)# 渲染图表到notebook
c.render_notebook() 2、多图例散点图
from pyecharts import options as opts
from pyecharts.charts import Scatter
from pyecharts.faker import Faker
import pandas as pd
from pyecharts.globals import ThemeTypedf pd.read_csv(train.csv).head(100)
df df.sort_values(GrLivArea, ascendingTrue)
df[[SalePrice, OverallQual, GrLivArea, GarageCars, TotalBsmtSF, FullBath, YearBuilt]]
x_data df.SalePrice.to_list()
x_data [str(i) for i in x_data] #x轴不能用数字
y_data df.GrLivArea.to_list()
y_data1 df.YearBuilt.to_list()c (Scatter(init_optsopts.InitOpts( themeThemeType.WALDEN)).add_xaxis(x_data).add_yaxis(GrLivArea, y_data).add_yaxis(YearBuilt, y_data1).set_series_opts(label_optsopts.LabelOpts(is_showFalse, positionright,formatter{c}, rotate0)) .set_global_opts(title_optsopts.TitleOpts(title散点图),visualmap_optsopts.VisualMapOpts(max_500000, min_100000),)
)# 渲染图表到notebook
c.render_notebook() 3、气泡图
from pyecharts import options as opts
from pyecharts.charts import Scatter
from pyecharts.faker import Faker
import pandas as pd
from pyecharts.globals import ThemeTypedf pd.read_csv(train.csv).head(100)
df df.sort_values(GrLivArea, ascendingTrue)
df[[SalePrice, OverallQual, GrLivArea, GarageCars, TotalBsmtSF, FullBath, YearBuilt]]
x_data df.GrLivArea.to_list()
x_data [str(i) for i in x_data] #x轴不能用数字
y_data df.SalePrice.to_list()c (Scatter(init_optsopts.InitOpts( themeThemeType.WALDEN)).add_xaxis(x_data).add_yaxis(GrLivArea, y_data).set_series_opts(label_optsopts.LabelOpts(is_showFalse, positionright,formatter{c}, rotate0)) .set_global_opts(title_optsopts.TitleOpts(title气泡图),visualmap_optsopts.VisualMapOpts(type_size,max_500000, min_100000),)
)# 渲染图表到notebook
c.render_notebook()4、热力图
from pyecharts.charts import HeatMap
from pyecharts import options as opts
import pandas as pd # 读取CSV文件的前100行
df pd.read_csv(train.csv).head(100) # 选择你关心的列
df_date df[[SalePrice, OverallQual, GrLivArea, GarageCars, TotalBsmtSF, FullBath, YearBuilt]] # 计算相关性矩阵确保没有缺失值
correlation_matrix df_date.corr().dropna(axis0, howany).dropna(axis1, howany) # 初始化一个空列表来存储三元组
triplets [] for i in range(correlation_matrix.shape[0]): for j in range(correlation_matrix.shape[1]): # 获取 x 坐标列名和 y 坐标列名 x i y j # 获取数据值相关性系数 value round(correlation_matrix.iloc[i, j], 2)triplets.append((x, y, value)) # 创建热力图
c ( HeatMap(init_optsopts.InitOpts( themeThemeType.WALDEN)) .add_xaxis(correlation_matrix.columns.tolist()) .add_yaxis( 相关性, correlation_matrix.index.tolist(), triplets, label_optsopts.LabelOpts(is_showTrue, positioninside), ) .set_global_opts( title_optsopts.TitleOpts(title热力图), visualmap_optsopts.VisualMapOpts(min_-1, max_1), # 设置最小值和最大值以反映相关性范围 )
) # 渲染图表到notebook
c.render_notebook()九、地理类图表
1、地图
from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.faker import Fakerx_data [杭州市,衢州市,湖州市,嘉兴市,宁波市,绍兴市,台州市,温州市,丽水市,金华市,舟山市]
y_data [4000,2000,1800,2100,3500,3000,3000,3500,1500,2000,1000]c (Map(init_optsopts.InitOpts( themeThemeType.WALDEN)).add(销量, [list(z) for z in zip(x_data, y_data)], 浙江).set_series_opts(label_optsopts.LabelOpts(is_showTrue, positioncenter,formatter{b}{c}, rotate0)) .set_global_opts(title_optsopts.TitleOpts(title地图),visualmap_optsopts.VisualMapOpts(max_4000),)
)# 渲染图表到notebook
c.render_notebook()十、突出类图表
1、仪表盘
from pyecharts import options as opts
from pyecharts.charts import Gauge
from pyecharts.globals import ThemeType# 创建并配置Gauge实例
gauge ( Gauge(init_optsopts.InitOpts( themeThemeType.WALDEN)) .add( 业务指标, [(完成率, 55.5)], split_number5, axisline_optsopts.AxisLineOpts( linestyle_optsopts.LineStyleOpts( color[(0.3, #67e0e3), (0.7, #37a2da), (1, #fd666d)], width30 ) ), detail_label_optsopts.LabelOpts(formatter{value}), ) .set_global_opts( title_optsopts.TitleOpts(title仪表盘), legend_optsopts.LegendOpts(is_showFalse), )
) # 渲染图表到notebook
gauge.render_notebook() 十一、组合图表
1、overlap
import pandas as pd
from pyecharts.globals import ThemeType
from pyecharts.charts import Line, Grid
from pyecharts import options as opts
from pyecharts.charts import Bar周期 [202340, 202341, 202342, 202343, 202344, 202345, 202346, 202347, 202348, 202349, 202350, 202351]
浏览 [20, 49, 53, 57, 43, 52, 56, 60, 80, 56, 59, 35]
点击 [4, 14, 4, 2, 13, 7, 6, 5, 11, 4, 8, 0]
购买 [0, 0, 1, 0, 3, 1, 1, 1, 1, 3, 3, 1]
总量 [24, 63, 58, 59, 59, 60, 63, 66, 92, 63, 70, 36]bar (Bar(init_optsopts.InitOpts(width640px, height400px, themeThemeType.LIGHT)).add_xaxis(周期).add_yaxis(浏览, 浏览, stackstack1, color#5aa5b4, category_gap40%).add_yaxis(点击, 点击, stackstack1, color#FFFF00, category_gap40%).add_yaxis(购买, 购买, stackstack1, color#FF6347, category_gap40%).set_series_opts(label_optsopts.LabelOpts(positionright,formatter{c})).set_global_opts(title_optsopts.TitleOpts(titleoverlap),# xaxis_optsopts.AxisOpts(name地市),# visualmap_optsopts.VisualMapOpts(max_150),# toolbox_optsopts.ToolboxOpts(),# datazoom_optsopts.DataZoomOpts(),xaxis_optsopts.AxisOpts(name_rotate60, axislabel_opts{rotate: 45}))
)line (Line(init_optsopts.InitOpts(width640px, height400px, themeThemeType.LIGHT)).add_xaxis(周期).add_yaxis(总量,总量,# markline_optsopts.MarkLineOpts(data[opts.MarkLineItem(type_average)]),
# markline_optsopts.MarkLineOpts(data[opts.MarkLineItem(y38)]),).set_global_opts(title_optsopts.TitleOpts(title))
)overlap1 bar.overlap(line)
overlap1.render_notebook()2、grid-并行多图
import pandas as pd
from pyecharts.globals import ThemeType
from pyecharts.charts import Line, Grid
from pyecharts import options as opts
from pyecharts.charts import Bar周期 [202340, 202341, 202342, 202343, 202344, 202345, 202346, 202347, 202348, 202349, 202350, 202351]
浏览 [20, 49, 53, 57, 43, 52, 56, 60, 80, 56, 59, 35]
点击 [4, 14, 4, 2, 13, 7, 6, 5, 11, 4, 8, 0]
购买 [0, 0, 1, 0, 3, 1, 1, 1, 1, 3, 3, 1]
总量 [24, 63, 58, 59, 59, 60, 63, 66, 92, 63, 70, 36]bar (Bar(init_optsopts.InitOpts(width640px, height400px, themeThemeType.LIGHT)).add_xaxis(周期).add_yaxis(浏览, 浏览, stackstack1, color#5aa5b4, category_gap40%).add_yaxis(点击, 点击, stackstack1, color#FFFF00, category_gap40%).add_yaxis(购买, 购买, stackstack1, color#FF6347, category_gap40%).set_series_opts(label_optsopts.LabelOpts(positionright,formatter{c})).set_global_opts(title_optsopts.TitleOpts(title并行多图),# xaxis_optsopts.AxisOpts(name地市),# visualmap_optsopts.VisualMapOpts(max_150),# toolbox_optsopts.ToolboxOpts(),# datazoom_optsopts.DataZoomOpts(),xaxis_optsopts.AxisOpts(name_rotate60, axislabel_opts{rotate: 45}))
)line (Line(init_optsopts.InitOpts(width640px, height400px, themeThemeType.LIGHT)).add_xaxis(周期).add_yaxis(总量,总量,# markline_optsopts.MarkLineOpts(data[opts.MarkLineItem(type_average)]),
# markline_optsopts.MarkLineOpts(data[opts.MarkLineItem(y38)]),).set_global_opts(title_optsopts.TitleOpts(title))
)grid (Grid(init_optsopts.InitOpts(width860px, height600px, themeThemeType.LIGHT)).add(bar, grid_optsopts.GridOpts(pos_top50%, pos_right10%)).add(line, grid_optsopts.GridOpts(pos_left10%, pos_bottom50%))
)grid.render_notebook()3、page-顺序多图
from pyecharts.charts import Page
import pandas as pd
from pyecharts.globals import ThemeType
from pyecharts.charts import Line, Tab
from pyecharts import options as opts
from pyecharts.charts import Bar周期 [202340, 202341, 202342, 202343, 202344, 202345, 202346, 202347, 202348, 202349, 202350, 202351]
浏览 [20, 49, 53, 57, 43, 52, 56, 60, 80, 56, 59, 35]
点击 [4, 14, 4, 2, 13, 7, 6, 5, 11, 4, 8, 0]
购买 [0, 0, 1, 0, 3, 1, 1, 1, 1, 3, 3, 1]
总量 [24, 63, 58, 59, 59, 60, 63, 66, 92, 63, 70, 36]bar (Bar(init_optsopts.InitOpts(width640px, height400px, themeThemeType.LIGHT)).add_xaxis(周期).add_yaxis(浏览, 浏览, stackstack1, color#5aa5b4, category_gap40%).add_yaxis(点击, 点击, stackstack1, color#FFFF00, category_gap40%).add_yaxis(购买, 购买, stackstack1, color#FF6347, category_gap40%).set_series_opts(label_optsopts.LabelOpts(positionright,formatter{c})).set_global_opts(title_optsopts.TitleOpts(title顺序多图),d# xaxis_optsopts.AxisOpts(name地市),# visualmap_optsopts.VisualMapOpts(max_150),# toolbox_optsopts.ToolboxOpts(),# datazoom_optsopts.DataZoomOpts(),xaxis_optsopts.AxisOpts(name_rotate60, axislabel_opts{rotate: 45}))
)line (Line(init_optsopts.InitOpts(width640px, height400px, themeThemeType.LIGHT)).add_xaxis(周期).add_yaxis(总量,总量,# markline_optsopts.MarkLineOpts(data[opts.MarkLineItem(type_average)]),
# markline_optsopts.MarkLineOpts(data[opts.MarkLineItem(y38)]),).set_global_opts(title_optsopts.TitleOpts(title))
)def page_draggable_layout():# page Page(layoutPage.SimplePageLayout) # 不可拖动page Page(layoutPage.DraggablePageLayout) # 可拖动page.add(bar,line)page.render_notebook()page.render(C:/Users/Mirror/Desktop/下载/pyecharts/顺序多图.html) if __name__ __main__:page_draggable_layout()4、tab-选项卡多图
import pandas as pd
from pyecharts.globals import ThemeType
from pyecharts.charts import Line, Tab
from pyecharts import options as opts
from pyecharts.charts import Bar周期 [202340, 202341, 202342, 202343, 202344, 202345, 202346, 202347, 202348, 202349, 202350, 202351]
浏览 [20, 49, 53, 57, 43, 52, 56, 60, 80, 56, 59, 35]
点击 [4, 14, 4, 2, 13, 7, 6, 5, 11, 4, 8, 0]
购买 [0, 0, 1, 0, 3, 1, 1, 1, 1, 3, 3, 1]
总量 [24, 63, 58, 59, 59, 60, 63, 66, 92, 63, 70, 36]bar (Bar(init_optsopts.InitOpts(width640px, height400px, themeThemeType.LIGHT)).add_xaxis(周期).add_yaxis(浏览, 浏览, stackstack1, color#5aa5b4, category_gap40%).add_yaxis(点击, 点击, stackstack1, color#FFFF00, category_gap40%).add_yaxis(购买, 购买, stackstack1, color#FF6347, category_gap40%).set_series_opts(label_optsopts.LabelOpts(positionright,formatter{c})).set_global_opts(title_optsopts.TitleOpts(title选项卡多图),# xaxis_optsopts.AxisOpts(name地市),# visualmap_optsopts.VisualMapOpts(max_150),# toolbox_optsopts.ToolboxOpts(),# datazoom_optsopts.DataZoomOpts(),xaxis_optsopts.AxisOpts(name_rotate60, axislabel_opts{rotate: 45}))
)line (Line(init_optsopts.InitOpts(width640px, height400px, themeThemeType.LIGHT)).add_xaxis(周期).add_yaxis(总量,总量,# markline_optsopts.MarkLineOpts(data[opts.MarkLineItem(type_average)]),
# markline_optsopts.MarkLineOpts(data[opts.MarkLineItem(y38)]),).set_global_opts(title_optsopts.TitleOpts(title))
)tab Tab()
tab.add(bar, bar-example)
tab.add(line, line-example)tab.render_notebook()5、timeline-时间线轮播多图
import pandas as pd
from pyecharts.globals import ThemeType
from pyecharts.charts import Timeline, Pie
from pyecharts import options as opts
dict {
202212: [[电脑, 1], [电视, 13], [冰箱, 8],[空调, 8],[洗衣机, 8]],
202301: [[电脑, 2], [电视, 12], [冰箱, 5],[空调, 3],[洗衣机, 8]],
202302: [[电脑, 3], [电视, 11], [冰箱, 8],[空调, 18],[洗衣机, 8]],
202303: [[电脑, 4], [电视, 10], [冰箱, 8],[空调, 8],[洗衣机, 2]],
202304: [[电脑, 5], [电视, 9], [冰箱, 8],[空调, 8],[洗衣机, 8]],
202305: [[电脑, 6], [电视, 8], [冰箱, 9],[空调, 8],[洗衣机, 8]],
202306: [[电脑, 7], [电视, 7], [冰箱, 8],[空调, 7],[洗衣机, 5]],
202307: [[电脑, 8], [电视, 6], [冰箱, 8],[空调, 8],[洗衣机, 8]],
202308: [[电脑, 9], [电视, 1], [冰箱, 8],[空调, 8],[洗衣机, 9]],
202309: [[电脑, 10], [电视, 5], [冰箱, 7],[空调, 7],[洗衣机, 8]],
202310: [[电脑, 11], [电视, 4], [冰箱, 8],[空调, 8],[洗衣机, 4]],
202311: [[电脑, 12], [电视, 3], [冰箱, 18],[空调, 8],[洗衣机, 8]],
202312: [[电脑, 13], [电视, 2], [冰箱, 8],[空调, 8],[洗衣机, 3]]
}
tl_001 Timeline(init_optsopts.InitOpts(width640px, height400px, themeThemeType.LIGHT))
for date, data in dict.items():pie (Pie().add(数量,data,rosetyperadius,radius[30%, 55%],).set_global_opts(legend_optsopts.LegendOpts(is_showFalse),visualmap_optsopts.VisualMapOpts(max_10, item_width15, item_height80),title_optsopts.TitleOpts(每月家电销售情况 (时间: {}月 ).format(date)),))tl_001.add(pie, {}.format(date)) tl_001.render_notebook()