Pandas入门篇(三)-------数据可视化篇2(pandas-plot篇)

news2024/11/15 11:52:27

目录

  • 概述
  • 一、格式
    • 1. 生成pandas.plotting对象来生成图表
    • 2. 调用plot()函数来生成图表
    • 3.支持的图表类型
  • 二、单变量绘图常用图表
    • 1. 柱状图(bar)
      • 使用场景
      • 代码实现
    • 2. 折线图(line)(默认即为折线图)
      • 适用场景
      • 代码实现
    • 3.面积图(area)
      • 适用场景
    • 代码实现:
    • 4.直方图(hist(bins= n))
      • 适用场景
      • 代码实现
    • 5.饼图(pie)
      • 适用范围
    • 代码实现
  • 三、双变量绘图常用图表
    • 1.散点图(scatter)
      • 适用范围
      • 代码实现
    • 2. 蜂巢图(hexbin)
      • 适用范围
      • 代码实现
    • 3.堆叠图(bar(stacked=True))
      • 适用范围
      • 代码实现
    • 4.面积堆叠图(area)
      • 适用范围
      • 代码实现
  • 下篇内容

概述

Pandas 自带的可视化功能通过 plot 方法提供了一种便捷的方式来创建各种类型的图表。plot 方法是基于 Matplotlib 库构建的,因此它继承了 Matplotlib 的强大功能和灵活性,同时简化了绘图过程,使得用户无需深入了解 Matplotlib 的所有细节即可快速创建图表。

  • 主要特点和优势:
    • 集成性:plot 方法直接集成在 Pandas DataFrame 和 Series 对象中,使得用户可以直接从数据 对象创建图表,无需额外转换数据格式。
    • 便捷性:通过简单的函数调用和参数设置,用户可以快速生成各种类型的图表,无需编写大量的绘图代码。
    • 灵活性:尽管 plot 方法提供了默认的图表样式和设置,但用户仍然可以通过调整参数或使用 Matplotlib 的功能来进一步定制和美化图表。

一、格式

1. 生成pandas.plotting对象来生成图表

格式:

Dataframe[条件].聚合.plot.图形函数

2. 调用plot()函数来生成图表

格式:

Dataframe[条件].聚合.plot(kind = '图表类型',....其他参数)

这两种方法除语法外没有区别,建议使用第一种写法

3.支持的图表类型

plot 方法支持多种图表类型,包括:

  • 线图 (line):用于展示数据随时间或其他连续变量的变化趋势。
  • 柱状图 (bar):用于比较不同类别的数值数据。
  • 水平柱状图 (barh):与柱状图类似,但条形是水平的。
  • 直方图 (hist):用于展示数值数据的分布情况。
  • 箱线图 (box):用于展示一组数值数据的分布特征,包括最小值、最大值、中位数、四分位数等。
  • 面积图 (area):类似于线图,但下方区域被填充颜色,用于强调总量或累积效果。
  • 饼图 (pie):用于展示不同类别的占比情况。
  • 散点图 (scatter):用于展示两个变量之间的关系。
  • 核密度估计图 (kde 或 density):用于展示单变量概率分布的非参数估计。

二、单变量绘图常用图表

导入数据:

import pandas as pd
import pandas as ps
wine = pd.read_csv('/export/data/pandas_data/winemag-data_first150k.csv',index_col=0)
wine

数据样式:
在这里插入图片描述
产看数据基本信息

# 查看数据基本信息
wine.info()

在这里插入图片描述

1. 柱状图(bar)

使用场景

柱状图主要适用于以下类型的数据:

  • 分类数据:柱状图最常用于展示分类数据。
    分类数据是按照某种属性或特征将数据分为不同的类别或组。例如,人口统计中的性别、职业、教育程度等,或者产品销售数据中的不同产品类型。柱状图通过柱子的高度来表示每个类别的频数或占比,使得不同类别之间的数据对比一目了然。

  • 离散数值数据:除了分类数据,柱状图也可以用于展示离散的数值数据,尤其是当这些数值代表不同的类别或组时。
    例如,展示不同年龄段人群的平均收入,或者不同月份的销售额。

  • 时间序列数据(按时间分类):虽然线图通常是时间序列数据的首选可视化方式,但在某些情况下,如果时间序列数据是按固定时间间隔(如月份、季度或年份)收集的,并且主要关注每个时间点的数值而非趋势变化,那么柱状图也是一个可行的选择。
    例如,展示一年中各个月份的销售数据。

  • 排序数据:当需要对分类数据进行排序,并通过可视化来强调这种排序时,柱状图也很适用。
    例如,按销售额从高到低排序的产品类别。

需要注意的是,柱状图不适合用于展示连续变化的数值数据或复杂的趋势关系,因为这可能导致图形过于拥挤,难以解读。在这种情况下,线图或散点图可能更为合适。

代码实现

注:若数据处理部分未明白请先学习本专栏中Pandas入门篇(二)中相关内容

# 展示各省红酒种类排名前10的柱状图,figsize为图表大小,fontsize 为字体大小,color代表柱体颜色
wine['province'].value_counts().head(10).plot.bar(figsize=(10,8),fontsize = 20,color=['r','g','b'])

图表展示:
在这里插入图片描述

2. 折线图(line)(默认即为折线图)

适用场景

折线图(Line Chart)主要适用于展示随时间或其他连续变量变化的数据趋势。以下是折线图适用的数据类型:

  • 时间序列数据:折线图最常用于展示时间序列数据,即数据随时间变化的趋势。例如,股票价格随日期的变化、气温随季节的变化、销售额随月份的变化等。通过连接不同时间点的数据点,折线图可以清晰地揭示数据随时间的变化规律,帮助用户识别趋势、周期性变化或异常值。

  • 连续数值数据:除了时间序列数据,折线图也适用于展示其他连续变量之间的数值关系。只要数据点可以按某种顺序(如大小、等级)排列,就可以使用折线图来表示。这种顺序不必是时间,但数据点之间应该存在某种逻辑上的连续性。

  • 多组数据的对比:当需要同时展示多组数据随时间或其他连续变量的变化趋势时,折线图非常有用。通过不同颜色的线条或标记,可以区分不同的数据系列,从而比较它们之间的相似性和差异性。

需要注意的是,折线图不适用于展示分类数据或离散数值数据,因为这些数据类型通常更适合使用柱状图或饼图等图表类型。此外,如果数据点过多或变化过于复杂,折线图可能会变得难以解读,此时可能需要考虑使用其他可视化方法或对数据进行简化处理。

代码实现

注:若数据处理部分未明白请先学习本专栏中Pandas入门篇(二)中相关内容

# 统计各分数段红酒数量,grid=True)表示显示网格
wine['points'].value_counts().sort_index().plot.line(figsize=(13,8), color='gray',fontsize = 20,grid=True)

图表展示:
在这里插入图片描述

3.面积图(area)

适用场景

面积图是在折线图的基础上,对折线以下的区域进行颜色填充,用于在连续间隔或时间跨度上展示数值。它主要强调数量与时间或其他连续变量的关系,并特别适用于表示趋势和对比关系。因此,面积图主要适用于以下类型的数据:

  • 时间序列数据:面积图非常适合展示随时间变化的数据。例如,企业每个月的销售额、网站每日的访问量等。通过面积图,可以清晰地看到数据随时间变化的趋势,以及不同时间段内数据的累积效果。
  • 连续数值数据:除了时间序列数据,面积图也适用于展示其他连续变量的数值数据。这些数据可以是连续的、有序的,并且可以通过面积的大小来表示数值的大小。
  • 多组数据的对比:当需要同时展示多组数据的变化趋势并进行对比时,面积图是一个很好的选择。通过为不同的数据系列使用不同的颜色或填充模式,可以清晰地看到它们之间的差异和相似之处。
    需要注意的是,面积图在展示大量数据时可能会变得复杂和难以解读。因此,在数据点过多或数据变化过于复杂的情况下,可能需要考虑使用其他类型的图表,如折线图或柱状图。

代码实现:

注:若数据处理部分未明白请先学习本专栏中Pandas入门篇(二)中相关内容

import matplotlib as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 正常显示汉字
plt.rcParams['axes.unicode_minus'] = False # 正常显示负号
wine['points'].value_counts().sort_index().plot.area(figsize=(13,8), color='gray',fontsize = 20,title = '各分数段红酒数量面积图')

图表展示:
在这里插入图片描述

4.直方图(hist(bins= n))

适用场景

直方图主要适用于展示连续型变量的分布情况。这类数据通常具有无限多个可能的取值,且取值之间可以连续变化,如人的身高、体重、考试成绩等。通过直方图,我们可以清晰地看到数据的集中趋势、分散程度以及可能存在的异常值。

直方图的基本构造是将连续变量划分为若干组(通常是等宽的),然后统计每组的频数或频率,并以矩形的面积来表示。矩形的宽度表示组距,高度表示频数或频率。这样,整个直方图就展示了数据的分布情况。

在实际应用中,直方图常用于以下几个场景:

  • 数据分析与探索:在数据分析的初期阶段,直方图可以帮助我们快速了解数据的分布情况,从而为后续的分析和建模提供基础。
  • 质量控制:在工业生产中,直方图可以用来监控产品的质量分布情况,及时发现异常值或生产过程中的问题。
  • 统计学研究:在统计学中,直方图常用于展示样本数据的分布情况,并与理论分布进行比较,以检验假设或估计参数。
    需要注意的是,直方图虽然能够展示数据的分布情况,但并不能提供关于数据之间关系的信息。因此,在需要分析变量之间关系的情况下,可能需要结合其他类型的图表(如散点图、折线图等)进行综合分析。

代码实现

# 筛选价格 小于 150的, 然后进行: 直方图绘制,bins为划分5个区间
wine[wine['price'] < 150]['price'].plot.hist(bins=10,figsize=(13,8), color='gray',fontsize = 20,title = '价格小于150的红酒数量直方图')

图表展示:
在这里插入图片描述

5.饼图(pie)

适用范围

饼图(Pie Chart)主要适用于展示分类数据的占比情况。具体来说,饼图通过将一个完整的圆饼按照各部分所占的比例来划分,每个部分用不同的颜色或纹理表示,从而直观地展示各类别在总体中所占的比例。

饼图适用于以下类型的数据:

分类数据:饼图最适合用于展示分类数据的占比。例如,展示不同产品类型的销售占比、不同部门的员工人数占比、不同地区的客户数量占比等。通过饼图,可以清晰地看到各类别在总体中的相对大小。
百分比数据:当需要展示各类别所占的百分比时,饼图也是一个很好的选择。通过饼图,可以直观地比较不同类别之间的比例关系,从而更容易地识别出占比最大或最小的类别。
需要注意的是,当饼图中的类别过多时,可能会导致饼图变得拥挤且难以解读。在这种情况下,可以考虑使用其他类型的图表(如柱状图或条形图)来展示数据。此外,饼图只展示了各类别的占比,而不能展示数量的具体值,因此在需要展示具体数值时,可能需要结合其他图表或文字说明进行补充。

代码实现

# 展示各省红酒种类排名前10的饼图
wine['province'].value_counts().head(10).plot.pie(figsize=(10,8),fontsize = 20)

图表展示:
在这里插入图片描述

三、双变量绘图常用图表

1.散点图(scatter)

适用范围

散点图主要适用于显示和比较数值型数据,尤其是当需要观察两个变量之间的关系时。例如,在科学数据、统计数据和工程数据的分析中,散点图常被用来判断数据是否倾向于使用聚类来做分群,或者是否倾向于使用线性回归来做线性分析。

在散点图中,每个数据点代表两个变量的一个观测值,横轴和纵轴分别代表两个不同的变量。通过观察数据点在图上的分布模式,可以判断这两个变量之间是否存在某种关联,如正相关、负相关或无关等。此外,散点图还能展示数据的疏密程度和变化趋势,从而揭示两个连续变量之间的数量关系。

当有两个变量,且其中一个为分类变量时,散点图可以通过改变点的形状或颜色来区分不同的类别,从而揭示这些变量之间的关系。对于所有的变量都为连续性变量的情况,也可以绘制高维散点图进行分析。

需要注意的是,散点图主要用于显示变量之间的关系和趋势,而不是提供精确的数值。因此,在解读散点图时,应结合具体的数据背景和上下文进行理解。

总的来说,散点图适用于分析两个或多个数值型变量之间的关系,尤其在需要观察数据分布和趋势的情况下。

代码实现

# 绘制评分和价格的散点分布图(随机取100样本绘制)
wine.sample(100).plot.scatter(x ='price',y= 'points' ,figsize=(15,6),fontsize=20)

图表展示:
在这里插入图片描述

2. 蜂巢图(hexbin)

适用范围

蜂巢图适用于展示连续型变量的二维分布。这种图表通过将二维平面划分为一系列六边形格子(类似于蜂巢的结构),并统计每个格子内的数据点数量,来揭示数据的分布特征。

蜂巢图尤其适用于以下情况:

  • 连续变量的二维关系:当需要观察两个连续变量之间的分布关系时,Hexplot可以提供一个直观且平滑的展示方式。
    它不像散点图那样在数据点密集时可能出现重叠,而是通过将数据点聚合到六边形格子中,更清晰地展示数据的整体分布趋势。
  • 数据密度可视化:蜂巢图通过颜色的深浅或格子的大小来表示不同区域的数据密度,从而可以快速地识别出数据的聚集区域和稀疏区域。这对于发现数据中的异常值、热点或冷点非常有用。
  • 大量数据点的可视化:当数据量非常大时,散点图可能会变得难以解读,因为大量的数据点可能导致视觉上的混乱。而蜂巢图通过将数据点聚合到六边形格子中,可以有效地减少视觉上的复杂性,同时保留数据的分布特征。

需要注意的是,虽然蜂巢图能够揭示数据的分布趋势和密度,但它可能无法准确地表示单个数据点的具体位置。因此,在需要精确了解每个数据点位置的情况下,可能需要结合其他图表类型(如散点图)进行综合分析。

总的来说,蜂巢图适用于展示连续型变量的二维分布,特别是当数据量较大或需要观察数据密度时。

代码实现

# 4. 处理X轴坐标缺失, 属于Bug(新版本已解决), 可以通过调用 matplotlibde api添加x坐标
import matplotlib.pyplot as plt
fig, a1 = plt.subplots(figsize = (12, 8))
# 绘制评分和价格的蜂巢图,gridsize 为设置蜂巢的大小
wine[wine['price']<100].plot.hexbin(x ='price',y= 'points' ,figsize=(15,6),fontsize=20,gridsize = 20, ax=a1)
# 增加x轴刻度
a1.set_xticks([0, 20, 40, 60, 80, 100])
plt.show()

图表展示:
在这里插入图片描述

3.堆叠图(bar(stacked=True))

适用范围

堆叠图是一种特殊的图表类型,它通过将多个系列的数据在同个类目轴上(同一X轴位置)进行叠加显示,以展示多系列数据的和或各个数据系列的分量。堆叠图特别适用于以下类型的数据:

  • 多个系列数据需要对比:当需要比较两个或多个系列的值时,可以使用堆叠图。它有助于直观地比较各个系列在同一X轴位置上的数据总和或各个数据系列的分量。
  • 关注多系列数据的和:如果更关注于多系列数据的和在不同个类目轴上(不同X轴位置)的差异,而非突出各个系列数据之间的差异性,那么堆叠图是一个很好的选择。
  • 时间序列数据或分类数据:堆叠图可以用于展示时间序列数据或分类数据的趋势和变化。通过堆叠不同时间段或类别的数据,可以清晰地看到各个系列数据的贡献和变化。

需要注意的是,堆叠图并不适用于所有数据场景。例如,当需要比较各个数据点的绝对值时,堆叠图可能不是最佳选择,因为堆叠会导致数据点的实际值变得不那么直观。此外,对于分类数据的比较,如果更关注各个类别的独立表现而非其累加效果,使用其他类型的图表(如柱状图或饼图)可能更为合适。

代码实现

# 根据葡萄酒种类分组, 找到最常见的五种葡萄酒
# 1. 找到 种类最多的 五种酒 的 名字.  
top_5_variety = wine['variety'].value_counts().head().index.to_list()
top_5_variety

# 2. 从数据中取出最常见的五种葡萄酒.
top_5_wine = wine[wine.variety.isin(top_5_variety)]
top_5_wine

# 3. 透视表计数.
wine_counts = top_5_wine.pivot_table(index='points', columns='variety', values='country', aggfunc='count')
wine_counts

# 4. 修改列名, 做不做都行.
# wine_counts.columns = ['Bordeaux-style Red Blend', 'Cabernet Sauvignon', 'Chardonnay','Pinot Noir', 'Red Blend']

# 5. 可视化.
wine_counts.plot.bar(stacked=True, figsize=(16, 8))  # 堆叠图

图表展示:
在这里插入图片描述

4.面积堆叠图(area)

适用范围

面积堆叠图(Area Stacked Chart)适合展示具有多个分类或变量,并且需要表现这些分类或变量在总体中的累积量或占比情况的数据。具体来说,它适用于以下几种类型的数据:

  • 多分类或变量的累积量或占比:面积堆叠图能够清晰地表示每个分类或变量在总量中所占的比例,并允许用户在不同分类或变量之间进行比较。
    这对于展示市场份额、销售分布、成本构成等多分类数据的累积量和占比情况非常有用。
  • 时间序列数据:当需要展示多个分类或变量随时间变化的趋势时,面积堆叠图是一个很好的选择。
    通过堆叠不同时间段的数据,用户可以直观地看到每个分类或变量在不同时间点的贡献和变化。
  • 强调部分与整体关系:面积堆叠图通过展示每个数据系列在总体中的占比,强调了部分与整体的关系。这使得用户能够更容易地理解不同数据系列对整体趋势的贡献和影响。

需要注意的是,当分类或变量的数量过多时,面积堆叠图可能会变得拥挤和难以解读。因此,在选择使用面积堆叠图时,需要确保分类或变量的数量适中,以保证图表的清晰度和可读性。

代码实现

wine_counts.plot.area(figsize=(16, 8)) 

图表展示:
在这里插入图片描述

下篇内容

seaborn可视化

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解密SSL/TLS:密码套件扫描仪的深度解析(C/C++代码实现)

解密SSL/TLS流量通常是为了分析和审计加密通信&#xff0c;以确保数据传输的安全性和合规性。密码套件扫描仪是实现这一目的的一种工具&#xff0c;它可以提供关于SSL/TLS配置的详细信息&#xff0c;帮助安全专家评估潜在的风险。 SSL/TLS协议基础 SSL/TLS协议是网络安全中不…

一个JDBC小工具

pom.xml 结构 <properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><mysql5>5.1.44<…

解决python/pycharm中import导入模块时报红却能运行的问题

一、问题 导入时报红&#xff0c;如下 二、解决 右键单击项目&#xff0c;将项目Mark Directory as→Sources Root 三、效果 报红消失 学习导航&#xff1a;http://www.xqnav.top

redis stream 作为消息队列的最详细的命令说明文档

简介 stream 作为消息队列&#xff0c;支持多次消费&#xff0c;重复消费&#xff0c;ack机制&#xff0c;消息异常处理机制。 涉及到以下几个概念&#xff0c;消息流&#xff0c;消费者组&#xff0c;消费者。 涉及到以下命令 # 添加消息到流中 XADD key [NOMKSTREAM] [&…

动态规划——背包问题(01,完全,多重)

一、01背包问题 1.题目描述 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi&#xff0c;价值是 wi。 求解将哪些物品装入背包&#xff0c;可使这些物品的总体积不超过背包容量&#xff0c;且总价值最大。输出最大价值。 01背包问题特点&…

不考408的985,不想考408的有福了!吉林大学计算机考研考情分析

吉林大学&#xff08;Jilin University&#xff09;简称吉大&#xff0c;位于吉林长春&#xff0c;始建于1946年&#xff0c;是中华人民共和国教育部直属的综合性全国重点大学&#xff0c;国家“双一流”、“211工程”、“985工程”、“2011计划”重点建设的著名学府&#xff0…

免费分享一套微信小程序商城系统(电商系统)(SpringBoot+Vue3)【至尊版】,帅呆了~~

大家好&#xff0c;我是java1234_小锋老师&#xff0c;自己原创写了一个不错的微信小程序商城系统(电商系统)(SpringBootVue3)【至尊版】&#xff0c;免费分享下哈。 项目视频演示 【免费】微信小程序商城系统(电商系统)(SpringBootVue3) 【至尊版】Java毕业设计_哔哩哔哩_bi…

【数据结构与算法】之五道链表进阶面试题详解!

目录 1、链表的回文结构 2、相交链表 3、随机链表的复制 4、环形链表 5、环形链表&#xff08;||&#xff09; 6、完结散花 个人主页&#xff1a;秋风起&#xff0c;再归来~ 数据结构与算法 个人格言&#xff1a;悟已往之不谏&#xff0c;知…

自动驾驶主流芯片及平台架构(二)特斯拉自动驾驶芯片平台介绍

早期 对外采购mobileye EyeQ3 芯片摄像头半集成方案&#xff0c;主要是为了满足快速量产需求&#xff0c;且受制于研发资金不足限制&#xff1b; 中期 采用高算力NVIDIA 芯片平台其他摄像头供应商的特斯拉内部集成方案&#xff0c;mobileye开发节奏无法紧跟特斯拉需求&#xff…

pyside6的调色板QPalette的简单应用

使用调色板需要先导入:from PySide6.QtGui import QPalette 调色板QPalette的源代码&#xff1a; class QPalette(Shiboken.Object):class ColorGroup(enum.Enum):Active : QPalette.ColorGroup ... # 0x0Normal : QPalette.ColorGrou…

基于C++基础知识的循环语句

一、while循环 while循环语句形式如下&#xff1a; while(表达式){语句 } 循环每次都是执行完语句后回到表达式处重新开始判断&#xff0c;重新计算表达式的值&#xff0c;一旦表达式的值为假就退出循环。用花括号括起来的多条简单语句&#xff0c;花括号及其包含的语句被称…

公网tcp转流

之前做过几次公网推流的尝试, 今天试了UDP推到公网, 再用TCP从公网拉下来, 发现不行, 就直接改用TCP转TCP了. 中间中转使用的python脚本, 感谢GPT提供技术支持: import socket import threadingdef tcp_receiver(port, forward_queue):"""接收TCP数据并将其放入…

【简单介绍下7-Zip】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

Fireworks AI和MongoDB:依托您的数据,借助优质模型,助力您开发高速AI应用

我们欣然宣布 MongoDB与 Fireworks AI 正携手合作 让客户能够利用生成式人工智能 (AI) 更快速、更高效、更安全地开展创新活动 Fireworks AI由 Meta旗下 PyTorch团队的行业资深人士于 2022 年底创立&#xff0c;他们在团队中主要负责优化性能、提升开发者体验以及大规模运…

五款优秀的局域网监控软件推荐:实时监控电脑屏幕的神器

在现代社会&#xff0c;计算机和网络已经成为工作中不可或缺的部分。随着局域网的普及&#xff0c;如何有效地监控和管理局域网内的电脑成为了许多企业和管理者关心的问题。本文将为您推荐五款优秀的局域网监控软件&#xff0c;帮助您实时监控电脑屏幕&#xff0c;提高工作效率…

宏电全栈式IoT赋能供排水智能监测,护航城市生命线

城市供水、排水系统是维系城市正常运行、满足群众生产生活需要的重要基础设施&#xff0c;是城市的“生命线”。随着城市化进程加快&#xff0c;城市规模不断扩大&#xff0c;地下管线增长迅速&#xff0c;城市“生命线安全”的监管日益面临挑战。 宏电作为物联网行业的领航者…

尊享面试100(272.最接近的二叉树搜索值|| python)

刚开始想着用最小堆&#xff0c;把每个元素都加进去&#xff0c;然后找出最小的k个值&#xff0c;复杂度应该是&#xff08;nklogn) import heapq as pq class Solution:def __init__(self):self.h []pq.heapify(self.h)def closestKValues(self, root: Optional[TreeNode], …

LLVM的ThinLTO编译优化技术在Postgresql中的应用

部分内容引用&#xff1a;https://blog.llvm.org/2016/06/thinlto-scalable-and-incremental-lto.html LTO是什么&#xff1f; 链接时优化&#xff08;Link-time optimization&#xff0c;简称LTO&#xff09;是编译器在链接时对程序进行的一种优化。它适用于以文件为单位编译…

博客系统项目测试报告

文章目录 一.报告概要二.测试环境三.手工测试用例四.编写测试用例五.自动化测试Selenium测试项目主要特点 一.报告概要 项目概要 本项目是一个全功能的个人博客系统&#xff0c;旨在提供一个用户友好、功能全面的平台&#xff0c;允许用户注册、登录、浏览博客、查看详细内容、…

嵌入式学习

笔记 作业 有如下结构体 struct Student{ char name[16]; int age; double math_score; double chinese_score; double english_score; double physics_score; double chemistry…