100天精通Python(可视化篇)——第80天:matplotlib绘制不同种类炫酷柱状图代码实战(簇状、堆积、横向、百分比、3D柱状图)

文章目录

  • 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 matplotlib

x = ["战狼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", family='MicroSoft YaHei', weight='bold')

# 设置图形大小
plt.figure(figsize=(20, 8), dpi=80)
# 绘制条形图
plt.bar(range(len(x)), y, width=0.3)

# 设置字符串到x轴
plt.xticks(range(len(x)), x, rotation=45)

# 展示
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, color=colors[i], label='Group {}'.format(i+1))

# 坐标轴标签
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, bottom=bottom, color=colors[i], label='Group {}'.format(i+1))
    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 matplotlib

x = ["战狼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", family='MicroSoft YaHei', weight='bold')

# 设置图形大小
plt.figure(figsize=(20, 8), dpi=80)
# 绘制条形图
plt.barh(range(len(x)), y, color="orange")

# 设置字符串到y轴
plt.yticks(range(len(x)), x)

# 绘制网格
plt.grid(alpha=0.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, color=colors[0], label='Group 1')
ax.barh(np.arange(data2.shape[0]), -data2, color=colors[1], label='Group 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, axis=0)

# 将数据转换为百分比
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], bottom=bottom, color=colors[i % len(colors)], label='Group {}'.format(i+1), width=0.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数组来记录每个柱形图的底部位置,以便在绘制下一个柱形图时可以正确地堆叠在前面的柱形图上。我们还使用了zdir='y’参数来指定柱形图的方向为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, projection='3d')
for i in range(data.shape[0]):
    ax.bar(np.arange(data.shape[1]), data[i], zs=i, zdir='y', width=width, color=colors[i], alpha=0.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, projection='3d')
bottom = np.zeros(len(categories))
for i in range(len(data)):
    for j in range(data.shape[1]):
        ax.bar(categories, data[i, j], zs=j, zdir='y', bottom=bottom, color=colors[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, axis=0)

# 将数据转换为百分比
data_percent = (data / totals) * 100

# 绘制三维百分比堆积柱形图
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
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], zs=j, zdir='y', bottom=bottom, color=colors[i % len(colors)], label='Group {}'.format(i+1), alpha=0.8, width=0.6)
        bottom += data_percent[i, j]

# 设置图例
ax.legend()

# 设置坐标轴标签
ax.set_xlabel('Category')
ax.set_ylabel('Group')
ax.set_zlabel('Percentage')

# 显示图形
plt.show()

运行结果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/1959.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python读写EXCEL文件常用方法大全

python读写excel的方式有很多,不同的模块在读写的讲法上稍有区别,这里我主要介绍几个常用的方式。 用xlrd和xlwt进行excel读写;用openpyxl进行excel读写;用pandas进行excel读写; 一、数据准备 为了方便演示&#xff…

基于深度学习的动物识别系统(YOLOv5清新界面版,Python代码)

摘要:动物识别系统用于识别和统计常见动物数量,通过深度学习技术检测日常几种动物图像识别,支持图片、视频和摄像头画面等形式。在介绍算法原理的同时,给出Python的实现代码、训练数据集以及PyQt的UI界面。动物识别系统主要用于常…

C++ , STL常用容器

STLSTL初识STL的诞生STL基本概念STL六大组件STL中的容器、算法、迭代器容器算法迭代器初识STL — 常用容器string容器vector容器deque容器stack容器queue容器list容器set/ multiset 容器map/ multimap 容器C 模板. STL初识 STL的诞生 长久以来,软件界一直希望建立…

最好用的Markdown编辑器:MWeb Pro mac

MWeb pro Mac中文版是一款非常好用的Markdown编辑器和博客生成工具,支持语法高亮,预览,Fenced code blocks和代码高亮,Math ML支持,具有导出HTML/PDF,自定编辑器主题,字数统计,大纲视…

DRAM功能介绍与基础概念

目录 ROM与RAM DRAM定义与形态 DRAM存储单元 DRAM架构和工作流程 存储器是计算机系统中的记忆设备,用来存储程序和各种数据信息,存储器的存储介质主要采用半导体器件和磁性材料。接下来简单介绍存储器的主要分类。 按存储介质可以分类为半导体存储器…

2023年Android现代开发

2023年现代Android开发 下面与大家分享如何构建具有2023年最新趋势的Android应用程序。 Android是什么? Android 是一种基于 Linux 内核并由 Google 开发的开源操作系统。它用于各种设备,包括智能手机、平板电脑、电视和智能手表。 目前&#xff0c…

JVM-栈详解二

前言 虚拟机栈概述 虚拟机栈出现的背景 由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。 优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实…

【Java项目】完善基于Java+MySQL+Tomcat+maven+Servlet的博客系统

目录一、准备工作二、引入依赖三、创建必要的目录四、编写代码五/六、打包部署(直接基于 smart tomcat)七、验证代码正式编写服务器代码编写数据库相关的操作代码创建数据库/表结构(数据库设计)数据库代码封装数据库操作封装针对数据的增删改查!博客列表页约定前后端…

【论文阅读总结】用于目标检测的特征金字塔网络(FPN)

Feature Pyramid Networks for Object Detection1.摘要2.引言2.1 低级特征对于检测小物体很重要2.2 算法目标3. 文献综述3.1 Hand-engineered features and early neural networks3.2 Deep ConvNet object detectors3.3 Methods using multiple layers4.Feature Pyramid Networ…

嵌入式:BSP的理解

BSP概念总结BSP定义BSP的特点BSP的主要工作BSP在嵌入式系统和Windowsx系统中的不同BSP和PC机主板上的BIOS区别BSP与 HAL关系嵌入式计算机系统主要由 硬件层,中间层,系统软件层和应用软件层四层组成。硬件层:包含CPU,存储器(SDRAM&…

Mybatis(一):环境搭建

Mybatis(一):环境搭建前言一、MyBatis简介1、MyBatis历史2、MyBatis特性3、MyBatis下载4、和其它持久化层技术对比二、搭建MyBatis1、开发环境2、创建maven工程2.1 打包方式:jar2.2 引入依赖3、创建MyBatis的核心配置文件4、创建m…

通俗简介:操作系统之进程的管理与调度

操作系统是一个复杂的软件,具备许多功能。其中,进程的管理与调度是与我们密切相关的。本文将对操作系统功能中进程管理与调度作出介绍。 目录 一、进程 二、 进程管理 1、进程管理的概念 2、进程结构体的核心属性 3、进程调度 (1&#…

如何将pdf文件压缩?pdf压缩软件哪个好

PDF是一种常见的文档格式,因为包括文本格式和图像,我们往往采用这种格式进行文件传输和分享,但是也常常会因为pdf文件过大导致使用起来非常不方便,那么如何如何将pdf文件压缩(https://www.yasuotu.com/pdfyasuo&#x…

禁用非必需插件,让 IDEA 飞起

文章首发于个人博客,欢迎访问关注:https://www.lin2j.tech IDEA 为我们提供了众多的插件,但是这些插件并不都是必须的。如果电脑的性能不够强,反而会带来一些不必要的资源消耗。 因此这里整理了一些不常用的插件,可以…

如何让AI帮你干活-娱乐(3)

背景今天的话题会偏代码技巧一些,对于以前没有接触过代码的朋友或者接触代码开发经验较少的朋友会有些吃力。上篇文章介绍了如何广视角的生成相对稳定的视频。昨天的实现相对简单,主要用的是UI界面来做生成。但是生成的效果其实也显而易见,不…

【个人首测】百度文心一言 VS ChatGPT GPT-4

昨天我写了一篇文章GPT-4牛是牛,但这几天先别急,文中我测试了用GPT-4回答ChatGPT 3.5 和 Notion AI的问题,大家期待的图片输入也没有出现。 昨天下午百度发布了文心一言,对标ChatGPT,录屏无实机演示让百度股价暴跌。但是晚上百度就…

不要迷信 QUIC

很多人都在强调 QUIC 能解决 HoL blocking 问题,不好意思,我又要泼冷水了。假设大家都懂 QUIC,不再介绍 QUIC 的细节,直接说问题。 和 TCP 一样,QUIC 也是一个基于连接的,保序的可靠传输协议,T…

【测试开发篇4】测试模型

目录 一、软件测试V模型 编码前 概要设计: 详细设计: 编码后: 单元测试&集成测试 系统测试 验收测试 V模型的特点 优点: 缺点: 二、软件测试W模型 编码之前: 编码的时候: 编…

全网最详细,Jmeter性能测试数据写入文件(总结)看这篇就够了......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 jmeter 性能测试数据…

RK3568平台开发系列讲解(Linux系统篇)消息队列

🚀返回专栏总目录 文章目录 一、创建消息队列二、发送和接收消息三、内核结构沉淀、分享、成长,让自己和他人都能有所收获!😄 📢消息队列在如下两个方面上比管道有所增强: 消息队列中的数据是有边界的,发送端和接收端能以消息为单位进行交流,而不再是无分隔的字节流…