IT评测·应用市场-qidao123.com技术社区

标题: Seaborn:基于 Matplotlib 的高级绘图库,提供了更高级的接口来绘制吸引人 [打印本页]

作者: 渣渣兔    时间: 2024-8-20 08:52
标题: Seaborn:基于 Matplotlib 的高级绘图库,提供了更高级的接口来绘制吸引人
引言

Seaborn 是基于 Matplotlib 的高级数据可视化库,专为绘制统计图形而计划。相比于 Matplotlib,Seaborn 提供了更高级的接口,简化了绘图过程,同时默认的美观配色和样式使得图形更加吸引人。Seaborn 特殊适适用于探索性数据分析和统计建模,其简洁的 API 利用户能够轻松创建复杂的图形,快速洞察数据中的模式、关系和分布。
Seaborn 与 Pandas 精密集成,支持直接利用 Pandas DataFrame 数据结构。它内置了多种常用的统计图形类型,如分布图、分类图、回归图、热力图等,能够满意大部分统计数据可视化的需求。Seaborn 在数据分析、数据科学和机器学习领域得到了广泛应用,是 Python 可视化领域的重要工具。
核心特性

1. 主题设置与样式管理


2. 数据分布可视化


3. 分类数据可视化


4. 回归与矩阵图


5. 多样化的数据集成与图形加强


安装与基本利用

安装 Seaborn

Seaborn 可以通过 Python 的包管理工具 pip 进行安装。发起在捏造情况中安装 Seaborn 以避免与其他项目的依赖冲突。
  1. pip install seaborn
复制代码
安装乐成后,可以通过以下命令导入 Seaborn 并检察其版本号:
  1. import seaborn as sns
  2. print(sns.__version__)
复制代码
基本利用示例

以下是一些 Seaborn 的基本利用示例,展示了怎样创建差别类型的统计图形并进行常见的自定义操纵。
  1. import seaborn as sns
  2. import matplotlib.pyplot as plt
  3. import pandas as pd
  4. import numpy as np
  5. # 生成一些随机数据
  6. data = np.random.randn(1000)
  7. # 绘制数据的分布图
  8. sns.displot(data, kde=True)
  9. plt.title('Histogram and KDE Plot')
  10. plt.show()
  11. # 使用内置数据集进行分类绘图
  12. tips = sns.load_dataset('tips')
  13. # 绘制带有置信区间的条形图
  14. sns.barplot(x='day', y='total_bill', data=tips)
  15. plt.title('Bar Plot with Confidence Interval')
  16. plt.show()
  17. # 绘制回归图
  18. sns.regplot(x='total_bill', y='tip', data=tips)
  19. plt.title('Regression Plot')
  20. plt.show()
  21. # 绘制热力图
  22. corr = tips.corr()
  23. sns.heatmap(corr, annot=True, cmap='coolwarm')
  24. plt.title('Correlation Heatmap')
  25. plt.show()
复制代码
案例一:利用displot进行双变量分布可视化

在这个案例中,我们将利用displot函数来同时展示两个变量的分布以及它们之间的关系。假设我们有一个包罗身高(height)和体重(weight)的数据集。
  1. import seaborn as sns  
  2. import matplotlib.pyplot as plt  
  3. import pandas as pd
  4. import numpy as np
  5.   
  6. # 假设的数据集  
  7. data = {  
  8.     'height': np.random.normal(170, 10, 200),  
  9.     'weight': np.random.normal(70, 15, 200)  
  10. }  
  11. df = pd.DataFrame(data)  
  12.   
  13. # 使用displot展示两个变量的分布  
  14. sns.displot(df, x="height", y="weight", kind="kde", cmap="coolwarm")  
  15. plt.title('Bivariate KDE Plot of Height and Weight')  
  16. plt.show()
复制代码


案例二:利用pairplot进行多变量关系探索

在这个案例中,我们将利用pairplot函数来探索tips数据会合多个变量之间的关系。
  1. import seaborn as sns
  2. import matplotlib.pyplot as plt
  3. # 加载内置数据集
  4. tips = sns.load_dataset('tips')
  5. # 绘制多变量关系图
  6. g = sns.pairplot(tips, hue="time", palette="husl")
  7. # 使用suptitle添加标题,并通过y参数调整其位置
  8. plt.suptitle('Pairplot of Tips Dataset with Time as Hue', y=1.05)  # y参数控制标题的垂直位置
  9. plt.show()
复制代码


案例三:利用violinplot展示分类数据的分布

在这个案例中,我们将利用violinplot函数来展示差别类别下数据的分布情况。假设我们有一个包罗差别类别(category)和对应数值(value)的数据集。
  1. import seaborn as sns  
  2. import numpy as np  
  3. import matplotlib.pyplot as plt
  4. import pandas as pd
  5.   
  6. # 假设的数据集  
  7. data = {  
  8.     'category': ['A'] * 50 + ['B'] * 50,  
  9.     'value': np.concatenate([np.random.normal(0, 1, 50), np.random.normal(1, 1.5, 50)])  
  10. }  
  11. df = pd.DataFrame(data)  
  12.   
  13. # 绘制小提琴图  
  14. sns.violinplot(x="category", y="value", data=df, palette="Set2")  
  15. plt.title('Violin Plot of Values by Category')  
  16. plt.show()
复制代码


案例四:利用heatmap展示相关矩阵

在这个案例中,我们将利用heatmap函数来展示一个数据集的相关矩阵,以揭示差别变量之间的相关性。
  1. import seaborn as sns  
  2. import pandas as pd  
  3. import matplotlib.pyplot as plt
  4.   
  5. # 假设的数据集  
  6. data = {  
  7.     'X': np.random.normal(0, 1, 100),  
  8.     'Y': np.random.normal(0, 1, 100) + np.random.normal(0, 0.5, 100),  
  9.     'Z': np.random.normal(0, 1, 100) - np.random.normal(0, 0.5, 100)  
  10. }  
  11. df = pd.DataFrame(data)  
  12.   
  13. # 计算相关矩阵  
  14. corr = df.corr()  
  15.   
  16. # 绘制热力图  
  17. sns.heatmap(corr, annot=True, cmap="coolwarm")  
  18. plt.title('Correlation Heatmap')  
  19. plt.show()
复制代码


案例五:利用FacetGrid进行条件数据可视化

在这个案例中,我们将利用FacetGrid来根据某个条件(如性别)将数据分成多个子集,并为每个子集绘制独立的图形。
  1. import seaborn as sns  
  2. import pandas as pd  
  3. import matplotlib.pyplot as plt
  4.   
  5. # 加载内置数据集  
  6. tips = sns.load_dataset('tips')  
  7.   
  8. # 使用FacetGrid根据性别分组绘制直方图  
  9. g = sns.FacetGrid(tips, col="sex", hue="sex", palette="Set1", height=5)  
  10. g.map(sns.histplot, "total_bill", kde=True)  
  11. g.add_legend()  
  12. plt.title('Histograms of Total Bill by Sex')  
  13. plt.show()
复制代码


结论

Seaborn 是基于 Matplotlib 的高级绘图库,通过提供更高级的接口和默认美观的样式,使得统计数据的可视化变得简单而直观。Seaborn 的上风在于其简洁的 API、强大的数据集成和丰富的图形类型,特殊适适用于探索性数据分析和统计建模。掌握 Seaborn 能够资助用户更高效地分析数据、展示结果,并在数据科学工作流程中发挥重要作用。
更多资源



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4