当前位置: 主页 > Python语言

python可视化数据分析-数据可视化python实战教学

发布时间:2023-02-08 22:42   浏览次数:次   作者:佚名

Altair 是一个很棒的 Python 统计可视化库。 它非常简单、友好,并且建立在强大的 Vega-Lite JSON 规范之上,我们只需要简短的代码就可以生成美观有效的可视化效果。

使用 Altair,您可以花更多时间关注数据及其含义,我将在下面详细说明:

例子

以下是使用 Altair 在 JupyterLab 中快速可视化和显示数据集的示例:

import altair as alt
# load a simple dataset as a pandas DataFrame
from vega_datasets import data
cars = data.cars()

alt.Chart(cars).mark_point().encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color='Origin',
)

python 可视化分析_python可视化数据分析_数据可视化python实战教学

源自 Vega-Lite 的 Altair 的独特功能之一是声明性语法,它不仅可以实现可视化,还可以实现交互性。 通过对上面的示例进行一些修改python可视化数据分析,我们可以创建一个链接的直方图,该直方图根据散点图的选择进行过滤。

import altair as alt
from vega_datasets import data

source = data.cars()

brush = alt.selection(type='interval')

points = alt.Chart(source).mark_point().encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color=alt.condition(brush, 'Origin', alt.value('lightgray'))
).add_selection(
    brush
)

bars = alt.Chart(source).mark_bar().encode(
    y='Origin',
    color='Origin',
    x='count(Origin)'
).transform_filter(
    brush
)

points & bars

数据可视化python实战教学_python可视化数据分析_python 可视化分析

安装方法

Altair 需要以下依赖项:

如果您克隆了存储库,请从存储库的根目录运行以下命令:

pip install -e .[dev]

如果你不想克隆存储库,你可以安装它:

pip install git+https://github.com/altair-viz/altair

有关更多详细信息,您可以查看 github 链接

https://github.com/altair-viz/altair

三个操作

接下来,我将详细介绍 Altair 如何创建可视化的过滤、分组和合并操作,这些操作可用作探索性数据分析过程的一部分。

我们构建了两个模拟数据的数据帧。 第一个是餐厅订单,第二个是餐厅订单中商品的价格。

# import libraries
import numpy as np
import pandas as pd
import altair as alt
import random
# mock data
orders = pd.DataFrame({
   "order_id": np.arange(1,101),
   "item": np.random.randint(150, size=100),
   "qty": np.random.randint(110, size=100),
   "tip": (np.random.random(100) * 10).round(2)
})
prices = pd.DataFrame({
   "item": np.arange(1,51),
   "price": (np.random.random(50) * 50).round(2)
})
order_type = ["lunch""dinner"] * 50
random.shuffle(order_type)
orders["order_type"] = order_type

python可视化数据分析_数据可视化python实战教学_python 可视化分析

python可视化数据分析_python 可视化分析_数据可视化python实战教学

首先,我们创建一个简单的 Altair 语法结构图。

alt.Chart(orders).mark_circle(size=50).encode(
   x="qty", y="tip", color="order_type"
).properties(
   title = "Tip vs Quantity"
)

python 可视化分析_python可视化数据分析_数据可视化python实战教学

Altair 基本语法四步法:

考虑这样一种情况,我们需要创建价格和小费值的散点图,它们位于不同的数据框中。 一种选择是合并两个数据框并在散点图中使用这两列。

Altair 提供了一种更实用的方法,它允许在其他数据框中查找列,类似于执行相同操作的 Pandas 的合并功能。

alt.Chart(orders).mark_circle(size=50).encode(
   x="tip", y="price:Q", color="order_type"
).transform_lookup(
   lookup="item",
   from_=alt.LookupData(data=prices, key="item", fields=["price"])
).properties(
   title = "Price vs Tip"
)

python可视化数据分析_python 可视化分析_数据可视化python实战教学

transform_lookup 函数类似于 Pandas 的合并函数。 用于匹配观察的列(即行)将传递给查找参数。 fields 参数用于从另一个数据框中选择所需的列。

我们还可以将过滤器组件集成到绘图中,使我们能够绘制价格超过 10 美元的数据点。

alt.Chart(orders).mark_circle(size=50).encode(
   x="tip", y="price:Q", color="order_type"
).transform_lookup(
   lookup="item",
   from_=alt.LookupData(data=prices, key="item", fields=["price"])
).transform_filter(
   alt.FieldGTPredicate(field='price', gt=10)
).properties(
   title = "Price vs Tip"
)

python可视化数据分析_python 可视化分析_数据可视化python实战教学

transform_filter 函数用于过滤。 FieldGTPredicate 处理“大于”条件。

除了过滤和合并,Altair 还允许在绘图前对数据点进行分组。 例如python可视化数据分析,我们可以创建一个条形图来显示每种订单类型的商品平均价格。 此外,我们可以为价格低于 20 美元的商品执行此操作。

alt.Chart(orders).mark_bar().encode(
   y="order_type", x="avg_price:Q"
).transform_lookup(
   lookup="item",
   from_=alt.LookupData(data=prices, key="item", fields=["price"])
).transform_filter(
   alt.FieldLTPredicate(field='price', lt=20)
).transform_aggregate(
   avg_price = "mean(price)", groupby = ["order_type"]
).properties(
   height=200, width=300
)

python可视化数据分析_python 可视化分析_数据可视化python实战教学

让我们详细说明每个步骤:

综上所述

Altair 与其他常见可视化库的不同之处在于,它可以将数据分析组件无缝集成到可视化中,是一款非常实用的数据探索工具。

过滤、合并和分组对​​于探索性数据分析过程至关重要。 Altair 允许您在创建数据可视化时执行所有这些操作。 从这个意义上来说,Altair也可以算是一款数据分析工具,有兴趣的赶快来试试吧

python 可视化分析_python可视化数据分析_数据可视化python实战教学

大家好,最后给大家免费分享Python三件套:《ThinkPython》、《Python简明教程》、《Python进阶》PDF电子版。 如果您刚刚入门,请不要担心,这是最好的学习资料。

现免费分享,有需要的读者可以下载学习,在公众号下方回复关键词:三件套,就好。

采集方法:

长按下方扫码,关注并发送消息【三件套】

数据可视化python实战教学_python可视化数据分析_python 可视化分析