做淘宝网站运营工作流程,高端手表品牌排行榜前十名,个人 备案 多个网站,龙岩网红阙佩琪数据分析组合可视化实例图
开篇#xff1a;应女朋友的要求#xff0c;于是写下了这篇详细的数据可视化代码及完整注释
一#xff1a;柱状图、折线图横向组合网格布局
本段代码使用了pyecharts库来创建一个包含多个图表#xff08;柱状图、折线图#xff09;和网格布局的…数据分析组合可视化实例图
开篇应女朋友的要求于是写下了这篇详细的数据可视化代码及完整注释
一柱状图、折线图横向组合网格布局
本段代码使用了pyecharts库来创建一个包含多个图表柱状图、折线图和网格布局的复杂可视化。以下是关于每一行代码的详细解释 实现效果展示 # 从pyecharts库中导入options模块并将其重命名为opts。
from pyecharts import options as opts
# 从pyecharts.charts模块中导入Bar柱状图、Grid网格布局和Line折线图类。
from pyecharts.charts import Bar, Grid, Line# 创建第一个柱状图bar
# 初始化一个Bar对象。
bar (Bar()# 使用.add_xaxis()方法添加X轴数据这里是月份。.add_xaxis([{}月.format(i) for i in range(1, 13)])# 使用.add_yaxis()方法添加两组Y轴数据蒸发量和降水量并为它们设置不同的颜色和Y轴索引。.add_yaxis(蒸发量,[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],yaxis_index0,color#d14a61,).add_yaxis(降水量,[2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],yaxis_index1,color#5793f3,)# 使用.extend_axis()方法扩展两个额外的Y轴分别用于表示蒸发量和温度设置它们的名称、位置、范围和样式。.extend_axis(yaxisopts.AxisOpts(name蒸发量,type_value,min_0,max_250,positionright,axisline_optsopts.AxisLineOpts(linestyle_optsopts.LineStyleOpts(color#d14a61)),axislabel_optsopts.LabelOpts(formatter{value} ml),)).extend_axis(yaxisopts.AxisOpts(type_value,name温度,min_0,max_25,positionleft,axisline_optsopts.AxisLineOpts(linestyle_optsopts.LineStyleOpts(color#675bba)),axislabel_optsopts.LabelOpts(formatter{value} °C),splitline_optsopts.SplitLineOpts(is_showTrue, linestyle_optsopts.LineStyleOpts(opacity1)),))# 使用.set_global_opts()方法设置全局配置包括Y轴配置、标题、提示框和图例。.set_global_opts(yaxis_optsopts.AxisOpts(name降水量,min_0,max_250,positionright,offset80,axisline_optsopts.AxisLineOpts(linestyle_optsopts.LineStyleOpts(color#5793f3)),axislabel_optsopts.LabelOpts(formatter{value} ml),),title_optsopts.TitleOpts(title多X/Y轴可视化示例),tooltip_optsopts.TooltipOpts(triggeraxis, axis_pointer_typecross),legend_optsopts.LegendOpts(pos_left25%),)
)# 创建第一个折线图line
# 初始化一个Line对象。
line (Line()# 使用.add_xaxis()方法添加X轴数据。.add_xaxis([{}月.format(i) for i in range(1, 13)])# 使用.add_yaxis()方法添加一组Y轴数据平均温度并设置颜色和Y轴索引。.add_yaxis(平均温度,[2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],yaxis_index2,color#675bba,label_optsopts.LabelOpts(is_showFalse),)
)# 创建第二个柱状图bar1
# 类似于第一个柱状图的创建但X轴和Y轴索引不同用于在网格布局中定位。
bar1 (Bar().add_xaxis([{}月.format(i) for i in range(1, 13)]).add_yaxis(蒸发量 1,[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],color#d14a61,xaxis_index1,yaxis_index3,).add_yaxis(降水量 2,[2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],color#5793f3,xaxis_index1,yaxis_index3,).extend_axis(yaxisopts.AxisOpts(name蒸发量,type_value,min_0,max_250,positionright,axisline_optsopts.AxisLineOpts(linestyle_optsopts.LineStyleOpts(color#d14a61)),axislabel_optsopts.LabelOpts(formatter{value} ml),)).extend_axis(yaxisopts.AxisOpts(type_value,name温度,min_0,max_25,positionleft,axisline_optsopts.AxisLineOpts(linestyle_optsopts.LineStyleOpts(color#675bba)),axislabel_optsopts.LabelOpts(formatter{value} °C),splitline_optsopts.SplitLineOpts(is_showTrue, linestyle_optsopts.LineStyleOpts(opacity1)),)).set_global_opts(xaxis_optsopts.AxisOpts(grid_index1),yaxis_optsopts.AxisOpts(name降水量,min_0,max_250,positionright,offset80,grid_index1,axisline_optsopts.AxisLineOpts(linestyle_optsopts.LineStyleOpts(color#5793f3)),axislabel_optsopts.LabelOpts(formatter{value} ml),),tooltip_optsopts.TooltipOpts(triggeraxis, axis_pointer_typecross),legend_optsopts.LegendOpts(pos_left65%),)
)# 创建第二个折线图line1
# 类似于第一个折线图的创建但X轴和Y轴索引不同用于在网格布局中定位。
line1 (Line().add_xaxis([{}月.format(i) for i in range(1, 13)]).add_yaxis(平均温度 1,[2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],color#675bba,label_optsopts.LabelOpts(is_showFalse),xaxis_index1,yaxis_index5,)
)# 重叠图表
# 使用.overlap()方法将第一个柱状图和折线图重叠。
overlap_1 bar.overlap(line)
# 使用.overlap()方法将第二个柱状图和折线图重叠。
overlap_2 bar1.overlap(line1)# 创建网格布局grid
grid (# 初始化一个Grid对象并设置初始宽度和高度。Grid(init_optsopts.InitOpts(width1200px, height500px))# 使用.add()方法将第一个重叠图表添加到网格的右侧。.add(overlap_1, grid_optsopts.GridOpts(pos_right58%), is_control_axis_indexTrue)# 使用.add()方法将第二个重叠图表添加到网格的左侧。.add(overlap_2, grid_optsopts.GridOpts(pos_left58%), is_control_axis_indexTrue)# 使用.render()方法生成并保存HTML文件该文件包含所有图表和网格布局的可视化。.render(重叠图表和网格.html)
)二散点图与折线图横向组合网格布局
本段代码展示了如何使用pyecharts库来创建并组合一个散点图和一个折线图并将它们放置在一个网格Grid布局中。以下是关于每一行代码的详细解释 实现效果展示 # 导入pyecharts库中的options模块并设置别名为opts
from pyecharts import options as opts
# 导入Grid、Line、Scatter这三个图表类。
from pyecharts.charts import Grid, Line, Scatter# 定义了两组X轴数据x_data_a和x_data_b以及四组Y轴数据y_data_a、y_data_b、y_date_c、y_date_d。这些数据将用于创建散点图和折线图
x_data_a [草莓, 西瓜, 香蕉, 椰子, 蓝莓, 榴莲, 牛油果]
x_data_b [香菜, 蘑菇, 柿子, 黄瓜, 菠菜, 韭菜, 南瓜]
y_data_a [10, 23, 46, 70, 54, 31, 28]
y_data_b [15, 20, 31, 55, 35, 43, 68]
y_date_c [23, 35, 31, 50, 54, 13, 67]
y_date_d [56, 23, 45, 32, 12, 67, 40]# 这创建了一个散点图对象scatter
scatter (Scatter()# 设置X轴数据为x_data_a.add_xaxis(x_data_a)# 分别添加两组Y轴数据并设置其系列名称为“售出”和“收益”。.add_yaxis(售出, y_data_a).add_yaxis(收益, y_data_b)# 设置全局配置项包括标题、图例位置和X轴标签的旋转角度。.set_global_opts(title_optsopts.TitleOpts(title蔬菜),legend_optsopts.LegendOpts(pos_left20%),xaxis_optsopts.AxisOpts(axislabel_optsopts.LabelOpts(rotate45)),)
)# 创建了一个折线图对象line
line (Line()# 设置X轴数据为x_data_b.add_xaxis(x_data_b)# 分别添加两组Y轴数据并设置其系列名称为“售出”和“收益”.add_yaxis(售出, y_date_c).add_yaxis(收益, y_date_d)# 设置全局配置项包括标题、图例位置和X轴标签的旋转角度.set_global_opts(title_optsopts.TitleOpts(title水果, pos_right5%),legend_optsopts.LegendOpts(pos_right20%),xaxis_optsopts.AxisOpts(axislabel_optsopts.LabelOpts(rotate45)),)
)# 这段代码创建了一个Grid对象用于将散点图和折线图组合在一起
grid (Grid()# 将散点图添加到网格中并设置其位置为左侧55%的位置.add(scatter, grid_optsopts.GridOpts(pos_left55%))# 将折线图添加到网格中并设置其位置为右侧55%的位置.add(line, grid_optsopts.GridOpts(pos_right55%))# 渲染图表并将其保存为HTML文件文件名为“散点与折线组合.html”.render(散点与折线组合.html)
)三柱状图、折线图竖向组合网格布局
本段代码展示了如何使用pyecharts库创建一个包含柱状图和折线图的竖向网格布局图表并自定义了x轴和y轴的标签和数据。以下是关于每一行代码的详细解释 实现效果展示 # 导入pyecharts库中的options模块并重命名为opts用于设置图表的各种选项
from pyecharts import options as opts
# 导入pyecharts库中的Bar柱状图、Grid网格布局、Line折线图图表类
from pyecharts.charts import Bar, Grid, Line# 定义一个列表自定义x轴标签
x_axis_data [西瓜, 香蕉, 蓝莓, 椰子, 榴莲, 草莓, 木瓜, 水蜜桃]# 定义两个列表自定义柱状图和折线图的y轴数据
bar_y_axis_data [18, 25, 30, 44, 53, 34, 79, 56]
line_y_axis_data [13, 30, 67, 45, 55, 67, 89, 54]# 创建一个柱状图对象并设置其x轴标签、y轴数据包括销售量和利润以及全局选项如标题
bar (Bar().add_xaxis(x_axis_data) # 使用自定义的x轴标签.add_yaxis(销售量, bar_y_axis_data) # 添加一个名为“销售量”的系列数据为bar_y_axis_data.add_yaxis(利润, [v * 0.5 for v in bar_y_axis_data]) # 添加一个名为“利润”的系列数据为销售量的一半.set_global_opts(title_optsopts.TitleOpts(title柱状图)) # 设置全局选项包括图表标题
)# 创建一个折线图对象并设置其x轴标签、y轴数据包括销售量和利润以及全局选项如标题和图例位置
line (Line().add_xaxis(x_axis_data) # 使用自定义的x轴标签.add_yaxis(销售量, line_y_axis_data) # 添加一个名为“销售量”的系列数据为line_y_axis_data.add_yaxis(利润, [v * 0.5 for v in line_y_axis_data]) # 添加一个名为“利润”的系列数据为销售量的一半.set_global_opts(title_optsopts.TitleOpts(title折线图, pos_top48%), # 设置图表标题及其位置legend_optsopts.LegendOpts(pos_top48%), # 设置图例位置)
)# 创建一个网格布局对象将柱状图和折线图添加到布局中并设置它们的位置最后渲染图表到HTML文件
grid (Grid().add(bar, grid_optsopts.GridOpts(pos_bottom60%)) # 将柱状图添加到网格布局中并设置其位置.add(line, grid_optsopts.GridOpts(pos_top60%)) # 将折线图添加到网格布局中并设置其位置.render(柱状图和折线图的网格布局图表.html) # 渲染图表到HTML文件
)四柱状图、折线图内嵌组合网格布局
本段代码展示了如何使用pyecharts库创建并保存一个包含柱状图和折线图的复合图表通过设置不同的Y轴索引和扩展Y轴实现了多Y轴的效果。以下是关于每一行代码的详细解释 实现效果展示 # 导入pyecharts库中的options模块和Bar, Grid, Line图表类。
from pyecharts import options as opts
from pyecharts.charts import Bar, Grid, Line
# 创建一个列表x_data包含1到12月的字符串表示。
x_data [{}月.format(i) for i in range(1, 13)]
# 创建一个Bar对象并添加X轴数据。
bar (Bar().add_xaxis(x_data)# 添加一个名为蒸发量的Y轴系列设置其数据、Y轴索引、颜色等属性。.add_yaxis(蒸发量,[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],yaxis_index0,color#d14a61,)# 添加一个名为降水量的Y轴系列设置其数据、Y轴索引、颜色等属性。.add_yaxis(降水量,[2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],yaxis_index1,color#5793f3,)# 扩展一个名为蒸发量的Y轴设置其名称、类型、最小值、最大值、位置、轴线样式、标签格式等属性。.extend_axis(yaxisopts.AxisOpts(name蒸发量,type_value,min_0,max_250,positionright,axisline_optsopts.AxisLineOpts(linestyle_optsopts.LineStyleOpts(color#d14a61)),axislabel_optsopts.LabelOpts(formatter{value} ml),))# 扩展一个名为温度的Y轴设置其名称、类型、最小值、最大值、位置、轴线样式、标签格式、分割线样式等属性。.extend_axis(yaxisopts.AxisOpts(type_value,name温度,min_0,max_25,positionleft,axisline_optsopts.AxisLineOpts(linestyle_optsopts.LineStyleOpts(color#675bba)),axislabel_optsopts.LabelOpts(formatter{value} °C),splitline_optsopts.SplitLineOpts(is_showTrue, linestyle_optsopts.LineStyleOpts(opacity1)),)).set_global_opts(yaxis_optsopts.AxisOpts(name降水量,min_0,max_250,positionright,offset80,axisline_optsopts.AxisLineOpts(linestyle_optsopts.LineStyleOpts(color#5793f3)),axislabel_optsopts.LabelOpts(formatter{value} ml),),title_optsopts.TitleOpts(title多Y轴示例),tooltip_optsopts.TooltipOpts(triggeraxis, axis_pointer_typecross),)
)# 创建一个Line对象并添加X轴数据和名为平均温度的Y轴系列设置其数据、Y轴索引、颜色、标签显示等属性。
line (Line().add_xaxis(x_data).add_yaxis(平均温度,[2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],yaxis_index2,color#675bba,label_optsopts.LabelOpts(is_showFalse),)
)# 将折线图line重叠到柱状图bar上。
bar.overlap(line)
# 创建一个Grid对象。
grid Grid()
# 将bar图表添加到Grid中并设置其位置参数以及是否控制轴索引。
grid.add(bar, opts.GridOpts(pos_left5%, pos_right20%), is_control_axis_indexTrue)
# 将Grid图表渲染为HTML文件文件名为树状与折线.html。
grid.render(柱状与折线内嵌图.html)