添加数据维度并使用Python绘制5D散点图

news/2024/10/18 20:20:13/

大家好,散点图通常用于比较2个不同特征以确定它们之间的关系,散点图也可以添加更多的维度来反映数据,例如使用颜色、气泡大小等。在本文中,将介绍如何绘制一个五维的散点图。

数据集:

https://github.com/checkming00/Medium_datasets/blob/main/WH%20Report_preprocessed.csv

 让我们从二维开始,简单地看一下Healthy_life_expectancy_at_birthLog_GDP_per_capita的图:

df.plot.scatter('Healthy_life_expectancy_at_birth', 'Log_GDP_per_capita')

 我们可以看到这2个特征具有很强的正相关关系。然后我们可以将year作为我们的三维视觉效果添加到绘图中:

import matplotlib.pyplot as plt
import numpy as npplt.figure(figsize=(15, 8))years = np.sort(df.year.unique())
for i, year in enumerate(years):BM = df.year == yearX = df[BM]['Healthy_life_expectancy_at_birth']Y = df[BM]['Log_GDP_per_capita']plt.subplot(2, 5, i+1) # 2X5 structure of subplots, at i+1 positionplt.scatter(X, Y)plt.title(year)plt.xlim([30, 80]) # x axis rangeplt.ylim([6, 12]) # y axis range
plt.show()
plt.tight_layout()

它显示了多年来Healthy_life_expectancy_at_birthLog_GDP_per_capita之间的关系。另一方面,我们可以让它具有交互性:

def plotyear(year):BM = df.year == yearX = df[BM]['Healthy_life_expectancy_at_birth']Y = df[BM]['Log_GDP_per_capita']plt.scatter(X, Y)plt.xlabel('Healthy_life_expectancy_at_birth')plt.ylabel('Log_GDP_per_capita')plt.xlim([30, 80])plt.ylim([6, 12])plt.show()
from ipywidgets import interact, widgetsmin_year=df.year.min()
max_year=df.year.max()
interact(plotyear, year=widgets.IntSlider(min=min_year, max=max_year, step=1, value=min_year))

 

然后我们可以拖动顶部的控制条来更改年份。现在让我们把第四个维度Continent作为图例放入:

continents = df.Continent.unique()con_colors = dict(zip(continents, ['b', 'g', 'r', 'c', 'm', 'y' ,'k']))
import seaborn as snsdef plotyear_continent(year):BM = df.year == yearsns.scatterplot(data=df[BM], x='Healthy_life_expectancy_at_birth', y='Log_GDP_per_capita', hue='Continent', palette=con_colors)plt.xlabel('Healthy_life_expectancy_at_birth')plt.ylabel('Log_GDP_per_capita')plt.xlim([30, 80])plt.ylim([6, 12])plt.legend()plt.show()
interact(plotyear_continent, year=widgets.IntSlider(min=min_year, max=max_year, step=1, value=round(df.year.mean(),0)))

 

它显示了不同大洲之间的关系,将默认年份设置为2014年(value=round(df.year.mean(),0))。

我们可以在视觉上做得更多的是气泡的大小。所以我们可以把population作为第五维:

continents = df.Continent.unique()con_colors = dict(zip(continents, ['b', 'g', 'r', 'c', 'm', 'y' ,'k']))min_size=df['population'].min()/1000000  # Scale bubble minimum size
max_size=df['population'].max()/1000000  # Scale bubble maximum sizedef plotyear_continent_pop(year):BM = df.year == yearsns.scatterplot(data=df[BM], x='Healthy_life_expectancy_at_birth', y='Log_GDP_per_capita', hue='Continent', palette=con_colors, size='population', sizes=(min_size, max_size))plt.xlabel('Healthy_life_expectancy_at_birth')plt.ylabel('Log_GDP_per_capita')plt.xlim([30, 80])plt.ylim([6, 12])plt.legend()plt.show()

interact(plotyear_continent_pop, year=widgets.IntSlider(min=min_year, max=max_year, step=1, value=round(df.year.mean(),0)))

 

它显示了各大洲与气泡大小作为人口的关系。

这就是我们制作5D散点图的方式,它可以尽可能在同一图像中告诉人们所需要的信息。


http://www.ppmy.cn/news/742932.html

相关文章

使用MQL4编写自己的交易策略:技巧与经验分享

随着技术的发展,越来越多的投资者开始使用程序化交易系统进行交易,其中MQL4语言是广泛应用于MetaTrader 4平台上编写交易策略的一种语言。本文将分享一些技巧和经验,帮助读者利用MQL4编写自己的交易策略。 策略开发流程 首先,我…

“设计模式”概述

设计模式代码样例:Git 设计原则 依赖倒置原则(DIP) 高层模块(稳定)不应依赖底层模块(变化),二者都应依赖于抽象(稳定)抽象不应依赖于实现细节,…

Pytorch TensorRT 安装使用流程

1.安装GPU驱动与Cudnn(注意版本对应) 2.安装TensorRT 安装流程1 安装流程2 3. 权值.pth文件转为Onnx 3.Onnx 文件本地化 .engine 文件(与本机算力有关) 执行命令: trtexec --onnx./resnet.onnx --saveEngineresn…

计算机c盘如何扩大,电脑c盘怎么扩大

大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。 电脑c盘扩大的方法是: 1、右击我的电脑点击“管理”,点击右侧的“磁盘管理”,就可以看到电脑硬盘的具体分区了。 2、点击C盘相邻的分区右击选择“…

如何解决电脑C盘不能扩展问题

一、存在的问题 最近发现电脑C盘内存不太够了,可能会影响到电脑的流畅度。 看了挺多视频,发现很多人会存在格式化了D盘,D盘有未分配的空间,但C盘仍然不能扩展现象;我在重新分盘的过程中也遇到了这种现象,…

计算机c盘小了,电脑C盘空间太小怎么办|电脑中使用分区助手扩大C盘空间的方法...

电脑C盘空间太小怎么办?我们都知道C盘就是系统盘,如果没有足够的空间将会导致电脑变慢,或者无法正常运行程序。今天,系统城小编就要教大家在电脑中使用分区助手扩大C盘空间的方法。 具体方法如下: 1、扩展分区向导是当…

台式电脑打不开计算机c盘,电脑打不开显示C盘损坏怎么办

如果你的电脑卡在windows进度条,显示C盘损坏,一直无限重启蓝屏,该怎么解决请看下面。下面由学习啦小编为你整理了电脑打不开显示C盘损坏怎么办的解决方法,希望对你有帮助! 电脑打不开显示C盘损坏解决方法如下 当我们电脑在突然断电…

如何清理电脑C盘

方法一:配置存储感知 点击【开始】图标或者直接在搜索框中输入“设置”,找到设置后点击进入,还可以直接按住键盘上的设置键进入,反正方法很多,根据自己喜欢的方式找到设置就行 接下来,这个时候有一个快捷的…