Python数据交互式可视化 - 跨层数据

交互式散点图

如您现在所知,散点图是用于在数据集中显示全局模式的最重要的图类型之一。 自然,重要的是要知道如何在这些图中引入交互性。 我们将首先查看对图的缩放和重置操作。 不过,在此之前,让我们看一下数据集。

我们可以使用以下代码查看HPI数据集:

import pandas as pd
#Download the data from Github repo 
hpi_url = "https://
# Once downloaded, read it into a DataFrame using pandas
hpi_df = pd.read_csv(hpi_url, sep='\t')
hpi_df.head()

输出结果:

图略

请注意,此数据集中有5个数字/定量特征:预期寿命(年),幸福感(0-10),结果不平等,生态足迹(gha /人均)和快乐星球指数。有两个分类/名义特征 :国家和地区。 在altair中,量化特征表示为Q,名义特征表示为N。我们将很快在可视化中看到如何使用它。

这实际上很棘手。 通常,出于可视化的目的,如果表示诸如等级之类的属性的特征具有广泛的范围(大约超过10个等级),则可以将该特征视为另一个数字或定量特征。 但是等级越少,它的作用就越像标签,并且类似于名义特征。 但是,等级特征与名义特征不同的方式存在一个关键差异–顺序特征对于次序特征很重要。 等级1与等级5具有不同的含义和优先级。

让我们通过练习生成并观察每个国家的“幸福感”(0-10)和“快乐星球指数”特征的静态散点图,使用不同的颜色表示该国家所属的区域并继续添加交互性 。

向静态散点图添加放大和缩小

我们将使用matplotlib生成静态散点图。 我们将在此处使用hpi_data_countries数据集作为绘图,并分析绘图中由图例表示的每个国家/地区的福利得分。 我们将继续添加缩放功能。 我们将使用altair库执行此操作。 让我们将简单的代码分解为更简单的组件,因为这是我们第一次使用altair进行交互。 为此,请执行以下步骤:

  • 加载hpi数据集并使用pandas从数据集中读取:

import pandas as pd
hpi_url = “https:”

Once downloaded, read it into a DataFrame using pandas

hpi_df = pd.read_csv(hpi_url, sep=‘\t’)



*   使用matplotlib绘制静态散点图:

    ```
import seaborn as sns
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
ax = sns.scatterplot(x='Wellbeing (0-10)', y='Happy Planet Index',
hue='Region', data=hpi_df)
plt.show()

输出结果:

图略

这里的每个点代表来自7个区域任何一个国家。 幸福感和幸福星球指数似乎相关。 我们看到不同地区的快乐星球指数得分和幸福感得分呈趋势。

现在我们有了一个静态散点图,让我们探讨一下该图的交互性。 我们将研究放大和缩小。

  • 将altair模块导入为alt:

import altair as alt
alt.renderers.enable(‘notebook’)




输出结果:


RendererRegistry.enable(‘notebook’)





*   提供选择的DataFrame(在我们的例子中为hpi_df)到altair Chart函数。
*   使用mark_circle()函数使用实心圆表示散点图中的数据点。您也可以使用mark_point()函数使用空圆代替实心圆。
*   使用encode函数在x和y轴上指定特征。 尽管我们在此函数中还使用了color参数,以使用region函数对数据点进行颜色编码,但这是可选的。 最后,添加Interactive()函数以使绘图具有交互性以进行缩放! 这需要Jupyter Notebook 5.3或更高版本。 使用以下代码:

    ```
alt.Chart(hpi_df).mark_circle().encode(
   x='Wellbeing (0-10):Q',
   y='Happy Planet Index:Q',
   color='Region:N',
).interactive()

输出结果:

静态散点图上的放大功能

图略

静态散点图上的缩小功能

图略

在该图上稍作调整,以确保可以实际放大和缩小。

您是否注意到我们在定量特征旁边添加了:Q后缀,在名义特征旁边添加了:N后缀? 添加这样的后缀有助于altair预先了解功能的类型,而不必自己推断。 您还可以尝试消除该图中的后缀,并且您会发现该图仍然可以正确生成,因为在这种情况下altair可以猜测要素的类型。 因此,添加后缀是一个好习惯,因为在某些情况下altair无法推断要素类型。

altair绘图中的一个重要概念是编码和通道。 这个概念真的很简单– altair尝试对数据的各个方面进行映射/编码,以实现更好的可视化。 这就是为什么您看到代码中有一个encode()函数的原因。 我们在编码函数中指定的各种参数(例如x,y和color)在altair中称为channel。 既然您已经了解了这些重要的术语,那么让我们看看Altair中其他有趣的交互形式。

注意:注意到绘图旁边的三个小点吗? 一旦将交互式绘图设置为所需的配置,就可以使用它将绘图保存到.png(静态)或.svg(交互式)文件中。 但是,.svg文件中的交互功能将无法正常工作,除非您在兼容软件(例如Adobe Animate)中将其打开。

将悬停和工具提示功能添加到散点图

探索散点图上的选择和突出显示功能

使用选择,缩放和悬停生成图

跨多个图选择

详情参阅 - 亚图跨际

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值