建设项目验收网站,app大全,旅游网站建设属于什么以及学科,网站开发文档word文章目录0. 专栏导读1. 普通柱状图2. 簇状柱形图3. 堆积柱形图4. 横向柱状图5. 横向双向柱状图6. 百分比堆积柱形图7. 3D柱形图8. 3D堆积柱形图9. 3D百分比堆积柱形图0. 专栏导读 #x1f3c6;#x1f3c6;作者介绍#xff1a;Python领域优质创作者、CSDN/华为云/阿里云/掘金…
文章目录0. 专栏导读1. 普通柱状图2. 簇状柱形图3. 堆积柱形图4. 横向柱状图5. 横向双向柱状图6. 百分比堆积柱形图7. 3D柱形图8. 3D堆积柱形图9. 3D百分比堆积柱形图0. 专栏导读 作者介绍Python领域优质创作者、CSDN/华为云/阿里云/掘金/知乎等平台专家博主 本文已收录于Python全栈系列专栏《100天精通Python从入门到就业》此专栏文章是专门针对零基础和需要进阶提升的同学所准备的一套完整教学从0到100的不断进阶深入后续还有实战项目轻松应对面试订阅专栏后续可以阅读Python从入门到就业100篇文章还可私聊进千人Python全栈交流群手把手教学问题解答 进群可领取80GPython全栈教程视频 300本计算机书籍基础、Web、爬虫、数据分析、可视化、机器学习、深度学习、人工智能、算法、面试题等。加入我一起学习进步一个人可以走的很快一群人才能走的更远 1. 普通柱状图
import matplotlib.pyplot as plt
import matplotlibx [战狼2, 速度与激情8, 功夫瑜伽, 西游伏妖篇, 变形金刚5最后的骑士, 摔跤吧爸爸, 加勒比海盗5死无对证, 金刚骷髅岛, 极限特工终极回归, 生化危机6终章,乘风破浪, 神偷奶爸3, 智取威虎山, 大闹天竺, 金刚狼3殊死一战, 蜘蛛侠英雄归来, 悟空传, 银河护卫队2, 情圣, 新木乃伊, ]
y [56.01, 26.94, 17.53, 16.49, 15.45, 12.96, 11.8, 11.61, 11.28, 11.12, 10.49, 10.3, 8.75, 7.55, 7.32, 6.99, 6.88,6.86, 6.58, 6.23]# 设置全局中文字体
matplotlib.rc(font, familyMicroSoft YaHei, weightbold)# 设置图形大小
plt.figure(figsize(20, 8), dpi80)
# 绘制条形图
plt.bar(range(len(x)), y, width0.3)# 设置字符串到x轴
plt.xticks(range(len(x)), x, rotation45)# 展示
plt.show()运行结果
2. 簇状柱形图 簇状柱形图是一种常用的数据可视化形式用于比较同一类别的不同变量之间的数量或大小并强调各变量之间的差异。它由多个垂直的柱状图组成每个柱状图代表一个变量同时每个柱状图在横向轴上都有一个类别名称与其他柱状图共享。应用场景簇状柱形图适用于许多领域包括商业、金融、医疗保健和社会科学等。例如它可以用于比较不同产品在销售量、利润或市场份额方面的表现或者比较不同国家在人口、GDP或教育水平等方面的差异。 这段代码会生成一个包含三个分组的柱状图其中每个分组有三个柱子每个柱子的高度由data数组中对应的元素确定。我们使用colors数组来指定每个分组的颜色并使用width变量来指定柱子的宽度。在绘图时我们使用循环来绘制每个分组的柱子并给每个分组添加一个图例标签。我们还使用set_xlabel和set_ylabel函数来设置坐标轴的标签使用set_xticks和set_xticklabels函数来设置x轴刻度标签。最后我们使用spines函数来去掉图形的上边框和右边框使图形更加美观。
import matplotlib.pyplot as plt
import numpy as np# 数据
data np.array([[2, 4, 6], [3, 5, 7], [4, 6, 8]])# 颜色
colors [#1f77b4, #ff7f0e, #2ca02c]# 宽度
width 0.25# 绘图
fig, ax plt.subplots()
for i in range(data.shape[0]):ax.bar(np.arange(data.shape[1]) i*width, data[i], width, colorcolors[i], labelGroup {}.format(i1))# 坐标轴标签
ax.set_xlabel(X Label)
ax.set_ylabel(Y Label)# x轴刻度标签
ax.set_xticks(np.arange(data.shape[1]) width)
ax.set_xticklabels([A, B, C])# 图例
ax.legend()# 美化
ax.spines[top].set_visible(False)
ax.spines[right].set_visible(False)plt.show()运行结果
3. 堆积柱形图 堆积柱形图是一种常用的数据可视化形式用于比较不同类别之间的数量或大小并强调各类别的组成成分。它由多个垂直的柱状图组成每个柱状图代表一个类别同时每个柱状图被分成不同的部分每个部分代表该类别的一个组成成分。应用场景堆积柱形图适用于许多领域包括商业、金融、医疗保健和社会科学等。例如它可以用于比较不同产品在销售量、利润或市场份额方面的表现并显示每种产品的不同销售渠道的贡献比例或者比较不同国家在人口、GDP或教育水平等方面的差异并显示每个国家的不同人口组成成分的比例。 这段代码会生成一个包含三个堆叠柱状图其中每个堆叠柱子的高度由data数组中对应的元素确定。我们使用colors数组来指定每个堆叠柱子的颜色并使用width变量来指定柱子的宽度。在绘图时我们使用循环来绘制每个堆叠柱子并给每个堆叠柱子添加一个图例标签。我们使用bottom变量来保存每个堆叠柱子的底部高度以便绘制下一个堆叠柱子时使用。我们还使用set_xlabel和set_ylabel函数来设置坐标轴的标签使用set_xticks和set_xticklabels函数来设置x轴刻度标签。最后我们使用spines函数来去掉图形的上边框和右边框使图形更加美观。
import matplotlib.pyplot as plt
import numpy as np# 数据
data np.array([[2, 4, 6], [3, 5, 7], [4, 6, 8]])# 颜色
colors [#1f77b4, #ff7f0e, #2ca02c]# 宽度
width 0.5# 绘图
fig, ax plt.subplots()
bottom np.zeros(data.shape[1])
for i in range(data.shape[0]):ax.bar(np.arange(data.shape[1]), data[i], width, bottombottom, colorcolors[i], labelGroup {}.format(i1))bottom data[i]# 坐标轴标签
ax.set_xlabel(X Label)
ax.set_ylabel(Y Label)# x轴刻度标签
ax.set_xticks(np.arange(data.shape[1]))
ax.set_xticklabels([A, B, C])# 图例
ax.legend()# 美化
ax.spines[top].set_visible(False)
ax.spines[right].set_visible(False)plt.show()运行结果
4. 横向柱状图 横向柱状图是一种图表类型它用于比较不同类别之间的数据。该图表以横向条形表示数据其中每个条形代表一个类别并且条形的长度表示该类别的数值大小。横向柱状图通常用于比较多个类别之间的数据以便更容易地比较它们之间的差异。应用场景横向柱状图常用于商业和金融领域以比较不同产品或服务的销售额或不同公司的市场份额。它也可以用于比较不同地区的人口统计数据例如人口数量或平均收入。 这段代码会生成一个包含一个横向柱状图其中每个柱子的宽度由x数组中对应的元素确定。在绘图时我们使用barh函数来绘制横向柱状图
import matplotlib.pyplot as plt
import matplotlibx [战狼2, 速度与激情8, 功夫瑜伽, 西游伏妖篇, 变形金刚5最后的骑士, 摔跤吧爸爸, 加勒比海盗5死无对证, 金刚骷髅岛, 极限特工终极回归, 生化危机6终章,乘风破浪, 神偷奶爸3, 智取威虎山, 大闹天竺, 金刚狼3殊死一战, 蜘蛛侠英雄归来, 悟空传, 银河护卫队2, 情圣, 新木乃伊, ]
y [56.01, 26.94, 17.53, 16.49, 15.45, 12.96, 11.8, 11.61, 11.28, 11.12, 10.49, 10.3, 8.75, 7.55, 7.32, 6.99, 6.88,6.86, 6.58, 6.23]# 设置全局中文字体
matplotlib.rc(font, familyMicroSoft YaHei, weightbold)# 设置图形大小
plt.figure(figsize(20, 8), dpi80)
# 绘制条形图
plt.barh(range(len(x)), y, colororange)# 设置字符串到y轴
plt.yticks(range(len(x)), x)# 绘制网格
plt.grid(alpha0.5)plt.show()运行结果
5. 横向双向柱状图 横向双向柱状图是一种图表类型它结合了横向柱状图和双向柱状图的特点用于比较两个不同的数据集之间的差异并且每个数据集都有多个类别。该图表由两组水平的柱状图组成其中每个柱子表示一个类别并且柱子的长度表示该类别的数值大小。两组柱状图在同一垂直轴上对齐以便更容易地比较它们之间的差异。应用场景横向双向柱状图通常用于比较两个数据集之间的差异并且每个数据集都有多个类别例如比较两个产品或服务的销售额或两个时间段的收入。它也可以用于比较两个不同地区或两个不同群体之间的人口统计数据例如人口数量或平均收入。横向双向柱状图可以更清晰地显示不同类别之间的差异并且可以比较两个数据集之间的交叉情况以便更好地理解数据。 这段代码会生成一个包含两个方向相反的柱状图其中每个柱子的高度由data1和data2数组中对应的元素确定。我们使用colors数组来指定每个组的颜色。在绘图时我们使用barh函数来绘制横向柱状图并使用负数的data2数组来绘制相反方向的柱状图。我们使用set_yticks和set_yticklabels函数来设置y轴刻度标签。我们还使用set_xlabel和set_ylabel函数来设置坐标轴的标签并使用legend函数来添加图例。最后我们使用spines函数来去掉图形的上边框和右边框使图形更加美观。
import matplotlib.pyplot as plt
import numpy as np# 数据
data1 np.array([2, 4, 6])
data2 np.array([3, 5, 7])# 颜色
colors [#1f77b4, #ff7f0e]# 绘图
fig, ax plt.subplots()ax.barh(np.arange(data1.shape[0]), data1, colorcolors[0], labelGroup 1)
ax.barh(np.arange(data2.shape[0]), -data2, colorcolors[1], labelGroup 2)# 坐标轴标签
ax.set_xlabel(X Label)
ax.set_ylabel(Y Label)# y轴刻度标签
ax.set_yticks(np.arange(data1.shape[0]))
ax.set_yticklabels([A, B, C])# 图例
ax.legend()# 美化
ax.spines[top].set_visible(False)
ax.spines[right].set_visible(False)plt.show()运行结果
6. 百分比堆积柱形图 百分比堆积柱形图是一种图表类型它用于显示多个类别中各个部分的百分比并将它们堆积到一个柱形图中。该图表由一个垂直的柱形图组成其中每个柱子表示一个类别并且柱子被分成多个部分每个部分表示该类别中的一个子类别并且该子类别在该类别中的百分比。所有的子类别加起来应该等于100%。应用场景百分比堆积柱形图通常用于比较多个类别中各个部分的百分比例如比较公司的营业额中不同产品的百分比或比较不同国家的人口中不同年龄段的百分比。它还可以用于比较同一类别中不同部分的百分比例如比较一个公司的不同部门中不同员工的百分比。百分比堆积柱形图可以更清晰地显示不同部分之间的百分比并且可以比较不同类别之间的百分比差异。 百分比堆积柱形图可以展示多组数据在不同类别下的百分比分布情况具有直观、明了的特点。在matplotlib中可以使用bar函数绘制堆积柱形图并使用percent属性将每个柱形图表示为百分比。
import numpy as np
import matplotlib.pyplot as plt# 数据
data np.array([[10, 15, 20, 25],[5, 10, 15, 20],[15, 20, 25, 30]])# 类别
categories [A, B, C, D]# 颜色
colors [r, g, b]# 计算每个类别的总和
totals np.sum(data, axis0)# 将数据转换为百分比
data_percent (data / totals) * 100# 绘制百分比堆积柱形图
fig, ax plt.subplots()
bottom np.zeros(len(categories))
for i in range(len(data_percent)):ax.bar(categories, data_percent[i], bottombottom, colorcolors[i % len(colors)], labelGroup {}.format(i1), width0.6)bottom data_percent[i]# 设置图例
ax.legend()# 设置坐标轴标签
ax.set_xlabel(Category)
ax.set_ylabel(Percentage)# 显示图形
plt.show()运行结果
7. 3D柱形图 3D柱状图是一种可视化数据的图表类型通常用于展示离散数据的数量或比较不同类别的数据。与传统的二维柱状图相比3D柱状图可以更直观地呈现数据的高低、宽度和深度从而更好地展示数据的分布和趋势。3D柱状图通常由三个坐标轴组成x轴表示数据的类别或时间、y轴表示数据的数量或比例z轴表示柱状图的深度。用户可以通过旋转和缩放图表来查看不同的角度和视角以更好地理解数据。应用场景3D柱状图可以用于各种应用场景例如市场营销、金融分析、科学研究等。它们可以帮助用户更好地理解数据从而做出更准确的决策。 在这个示例中我们使用了一个3x3x4的数据矩阵来表示三组数据在三个类别下的分布情况。我们使用了红、绿、蓝三种颜色来区分不同的数据组。在绘制三维堆积柱形图时我们使用了两个循环来遍历数据矩阵中的每个元素然后使用bar函数绘制柱形图。我们使用了一个bottom数组来记录每个柱形图的底部位置以便在绘制下一个柱形图时可以正确地堆叠在前面的柱形图上。我们还使用了zdiry’参数来指定柱形图的方向为y轴方向。
我们需要使用matplotlib库中的mplot3d模块和一些美化技巧这段代码会生成一个包含一个三维柱形图其中每个柱子的高度由data数组中对应的元素确定。我们使用colors数组来指定每个组的颜色并使用width变量来指定柱子的宽度。在绘图时我们使用bar函数来绘制柱状图并使用zs和zdir参数来指定每个柱子的深度和方向。我们使用alpha参数来指定柱子的透明度。我们使用set_xticks和set_xticklabels函数来设置x轴刻度标签使用set_yticks和set_yticklabels函数来设置y轴刻度标签。我们还使用set_xlabel、set_ylabel和set_zlabel函数来设置坐标轴的标签。最后我们使用spines函数来去掉图形的上边框和右边框使图形更加美观。
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D# 数据
data np.array([[2, 4, 6], [3, 5, 7], [4, 6, 8]])# 颜色
colors [#1f77b4, #ff7f0e, #2ca02c]# 宽度
width 0.5# 绘图
fig plt.figure()
ax fig.add_subplot(111, projection3d)
for i in range(data.shape[0]):ax.bar(np.arange(data.shape[1]), data[i], zsi, zdiry, widthwidth, colorcolors[i], alpha0.8)# 坐标轴标签
ax.set_xlabel(X Label)
ax.set_ylabel(Y Label)
ax.set_zlabel(Z Label)# x轴刻度标签
ax.set_xticks(np.arange(data.shape[1]))
ax.set_xticklabels([A, B, C])# y轴刻度标签
ax.set_yticks(np.arange(data.shape[0]))
ax.set_yticklabels([Group 1, Group 2, Group 3])# 美化
ax.spines[top].set_visible(False)
ax.spines[right].set_visible(False)plt.show()运行结果
8. 3D堆积柱形图 3D堆积柱形图是一种用于比较多个类别中各部分所占比例的图表类型。它将多个数据系列以柱形的形式堆叠在一起以显示每个类别中各部分的比例关系。与传统的二维堆积柱形图相比3D堆积柱形图可以更好地展示数据的分层和深度从而更直观地呈现数据的比例关系。用户可以通过旋转和缩放图表来查看不同的角度和视角以更好地理解数据。应用场景3D堆积柱形图可以用于各种应用场景例如销售分析、市场研究、人口统计等。它们可以帮助用户更好地了解各部分所占比例从而更好地制定决策和策略。 案例代码
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D# 数据
data np.array([[[10, 15, 20, 25],[5, 10, 15, 20],[15, 20, 25, 30]],[[5, 10, 15, 20],[10, 15, 20, 25],[20, 25, 30, 35]],[[15, 20, 25, 30],[20, 25, 30, 35],[30, 35, 40, 45]]])# 类别
categories [A, B, C, D]# 颜色
colors [r, g, b]# 绘制三维堆积柱形图
fig plt.figure()
ax fig.add_subplot(111, projection3d)
bottom np.zeros(len(categories))
for i in range(len(data)):for j in range(data.shape[1]):ax.bar(categories, data[i, j], zsj, zdiry, bottombottom, colorcolors[i % len(colors)])bottom data[i, j]# 设置图例
ax.legend([Group 1, Group 2, Group 3])# 设置坐标轴标签
ax.set_xlabel(Category)
ax.set_ylabel(Group)
ax.set_zlabel(Value)# 显示图形
plt.show()运行结果
9. 3D百分比堆积柱形图 3D百分比堆积柱形图是一种用于比较多个类别中各部分所占比例的图表类型。它将多个数据系列以柱形的形式堆叠在一起并且每个柱形中的部分按照所占比例进行分割以显示每个类别中各部分的比例关系。与传统的二维百分比堆积柱形图相比3D百分比堆积柱形图可以更好地展示数据的分层和深度从而更直观地呈现数据的比例关系。用户可以通过旋转和缩放图表来查看不同的角度和视角以更好地理解数据。应用场景3D百分比堆积柱形图可以用于各种应用场景例如销售分析、市场研究、人口统计等。它们可以帮助用户更好地了解各部分所占比例从而更好地制定决策和策略。 三维百分比堆积柱形图可以展示多组数据在不同类别下的百分比分布情况具有直观、明了的特点。在matplotlib中可以使用mplot3d库绘制三维堆积柱形图并使用percent属性将每个柱形图表示为百分比。
下面是一个示例代码
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D# 数据
data np.array([[[10, 15, 20, 25],[5, 10, 15, 20],[15, 20, 25, 30]],[[5, 10, 15, 20],[10, 15, 20, 25],[20, 25, 30, 35]],[[15, 20, 25, 30],[20, 25, 30, 35],[30, 35, 40, 45]]])# 类别
categories [A, B, C, D]# 颜色
colors [r, g, b]# 计算每个类别的总和
totals np.sum(data, axis0)# 将数据转换为百分比
data_percent (data / totals) * 100# 绘制三维百分比堆积柱形图
fig plt.figure()
ax fig.add_subplot(111, projection3d)
bottom np.zeros(len(categories))
for i in range(len(data_percent)):for j in range(data_percent.shape[1]):ax.bar(categories, data_percent[i, j], zsj, zdiry, bottombottom, colorcolors[i % len(colors)], labelGroup {}.format(i1), alpha0.8, width0.6)bottom data_percent[i, j]# 设置图例
ax.legend()# 设置坐标轴标签
ax.set_xlabel(Category)
ax.set_ylabel(Group)
ax.set_zlabel(Percentage)# 显示图形
plt.show()运行结果