Python 使用Altair绘制带有Jitter的水平条图
数据分析中最关键的方面之一是熟练地可视化数据,以快速定位趋势和模式。而使用水平的带有Jitter的条图来可视化分类和连续变量是一种高效的工具。
本文将展示如何使用Altair来创建水平的带有Jitter的条图。Altair是一个受欢迎的Python库,以其声明式统计可视化功能而闻名。
什么是条图和Jitter
条图以水平排列显示各个数据点,使我们可以观察它们在不同类别中的分布。然而,当多个数据点共享相同的水平位置时,它们可能重叠,难以区分个别点。Jitter是一种技术,它在每个点的水平位置上添加少量的随机噪声,将它们分散开并减少重叠。
先决条件
首先,确保在我们指定的Python环境中安装了Altair和Pandas。我们可以使用pip(一个通用的Python包管理器)来安装这些Python库。
pip install altair pandas
我们还需要一个数据集来进行操作。在本教程中,我们将使用Seaborn库中的“tips”数据集,该数据集包含有关餐厅顾客的总账单和小费金额的信息,以及其他变量,如周几和顾客的性别。
使用Altair创建具有Jitter的水平条纹图
在我们准备好前提条件后,我们可以开始使用Altair创建具有Jitter的水平条纹图。
按照以下步骤使用Altair创建具有Jitter的水平条纹图 –
步骤1:安装Altair
在开始之前,请确保您的Python环境中已安装了Altair。如果没有安装,您可以在终端中运行以下命令进行安装 –
pip install altair
步骤2:导入必要的库
在你的Python脚本或Jupyter Notebook中,导入所需的库:Altair和pandas。
import altair as alt
import pandas as pd
步骤3:加载数据
将数据集加载到pandas DataFrame中。例如,您可以使用pd.read_csv()加载CSV文件:
data = pd.read_csv("your_dataset.csv")
步骤4:使用jitter创建水平条形图
使用Altair创建带有jitter的水平条形图。指定数据源、标记类型、编码和其他图表属性 –
chart = alt.Chart(data).mark_circle(size=40, opacity=0.8).encode(
x=alt.X('continuous_variable:Q', title='X-axis Label'),
y=alt.Y('categorical_variable:O', title='Y-axis Label'),
color=alt.Color('group_variable:N', legend=alt.Legend(title='Group')),
tooltip=['continuous_variable', 'categorical_variable', 'group_variable']
).properties(
title='Horizontal Stripplot with Jitter',
width=600,
height=300
).configure_axis(
labelFontSize=12,
titleFontSize=14
).configure_legend(
labelFontSize=12,
titleFontSize=14
将’continuous_variable’、’categorical_variable’和’group_variable’替换为您的数据集中相应的列名。根据需要调整标记类型、大小、透明度和其他属性。
步骤5:显示或保存图形
您可以直接在您的Jupyter Notebook中显示图形,也可以将其保存为图像或HTML文件。要在notebook中显示图形,请使用-
chart.show()
要将绘图保存为图片,使用.save()并指定所需格式的文件名(例如,’plot.png’)−
chart.save('plot.png')
或者,您可以使用.save()方法将绘图保存为交互式的HTML文件。
chart.save('plot.html')
下面是使用Altair在Python中使用tips数据集绘制带有Jitter的水平Stripplot的完整代码。
示例
import altair as alt
import pandas as pd
# Load example dataset
tips = pd.read_csv("https://raw.githubusercontent.com/mwaskom/seaborn-data/master/tips.csv")
# Create horizontal stripplot with jitter
chart = alt.Chart(tips).mark_circle(size=40, opacity=0.8).encode(
x=alt.X('total_bill:Q', title='Total Bill ($)'),
y=alt.Y('day:O', title='Day of Week'),
color=alt.Color('sex:N', legend=alt.Legend(title='Gender')),
tooltip=['total_bill', 'day', 'sex']
).properties(
title='Total Bill by Day',
width=600,
height=300
).configure_axis(
labelFontSize=12,
titleFontSize=14
).configure_legend(
labelFontSize=12,
titleFontSize=14
)
# Save plot to HTML file
chart.save('stripplot.html')
输出
结论
总之,使用Python中的Altair创建具有抖动效果的水平条形图是一种简单而强大的方式,可以可视化数据集中分类变量和连续变量之间的关系。Altair提供了一种声明性且直观的语法,用于创建外观引人注目的图表,并具有可定制的属性。
通过按照本文中概述的步骤,您可以轻松加载数据,指定必要的编码,并自定义条形图的各个方面,如大小,不透明度,颜色和工具提示信息。抖动的添加有助于避免重叠点,从而更清楚地了解不同类别内的数据密度和分布情况。