社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

【Python】5种基本但功能非常强大的可视化类型

机器学习初学者 • 5 年前 • 619 次点击  
作者 | Soner Yıldırım

编译 | VK
来源 | Towards Data Science

数据可视化是数据科学的重要组成部分。它对于探索和理解数据非常有用。在某些情况下,可视化在传递信息方面也比普通数字好得多。

使用数据可视化技术可以很容易地发现变量之间的关系、变量的分布以及数据中的底层结构。

在本文中,我们将介绍数据分析中常用的5种基本数据可视化类型。我们将使用Altair库,它是Python的统计可视化库。

如果你喜欢其中一个用于数据可视化任务的库的话,我以前曾用Seaborn和ggplot2写过类似的文章。我建议你仔细检查一下,因为在同一个任务上比较不同的工具和框架会帮助你学得更好。

让我们首先创建一个用于示例的示例数据帧。

import numpy as np
import pandas as pd

df = pd.DataFrame({
   'date':pd.date_range(start='2020-01-10', periods=100, freq='D'),
   'cat':pd.Series(['A','B','C']).sample(n=100, replace=True),
   'val':(np.random.randn(100) + 10).round(2),
   'val2':(np.random.random(100) * 10).round(2),
   'val3':np.random.randint(20,50, size=100)
})

df = df.reset_index(drop=True)

df.head()

数据帧由100行和5列组成。它包含datetime、categorical和numerical值。

1.折线图

折线图显示了两个变量之间的关系。其中之一通常是时间。因此,我们可以看到变量是如何随时间变化的,例如股票价格,每日温度。

下面是如何用Altair创建一个简单的折线图。

import


    
 altair as alt

alt.Chart(df).mark_line().encode(
    x='date', y='val'
)

让我们详细说明一下语法。我们首先将数据传递给图表对象。下一个函数指定绘图类型。encode函数指定绘图中使用的列。因此,在encode函数中写入的任何内容都必须链接到数据帧。

Altair提供了更多的函数和参数来生成更多信息或定制的绘图。我们将在下面的例子中看到它们。

为了使上面的折线图看起来更好,我们可以使用“scale”特性调整y轴的值范围。

alt.Chart(df).mark_line().encode(
   alt.X('date'),
   alt.Y('val', scale=alt.Scale(zero=False))
)

为了使用scale属性,我们使用X和Y编码(例如alt.X)指定列名。zero参数设置为“False”,以防止轴从零开始。

2.散点图

散点图也是一种关系图。它通常用于显示两个数值变量的值。我们可以观察它们之间是否有关联。

我们可以创建“val”和“val2”列的散点图,如下所示。

alt.Chart(df).mark_circle(size=40).encode(
   alt.X('val', scale=alt.Scale(zero=False)),
   alt.Y('val2'),
   alt.Color('cat')
)

我们已经使用颜色编码来根据“cat”列分离数据点。mark_circle函数的size参数用于调整散点图中点的大小。

3.直方图

直方图用于显示连续变量的分布。它将取值范围划分为离散的数据元,并统计每个数据元中的数据点个数。

让我们创建“val3”列的直方图。

alt.Chart(df).mark_bar().encode(
   alt.X('val3', bin=True),
   alt.Y('count()')
).properties(title='Histogram of val3', height=300, width=450)

我们还使用properties函数自定义大小并添加标题。

4.箱线图

箱线图提供了变量分布的概述。它显示了值是如何通过四分位数和离群值展开的。

我们可以使用Altair的mark_boxplot函数创建一个箱线图,如下所示。

alt.Chart(df).mark_boxplot().encode(
  alt.X('cat'),
  alt.Y('val2', scale=alt.Scale(zero=False))
).properties(height=200, width=400)

A中的值范围小于其他两个类别。框内的白线表示中值。

5.条形图

条形图可用于可视化离散变量。每个类别都用一个大小与该类别的值成比例的条表示。

例如,我们可以使用条形图来可视化按week分组的“val3”列。我们先用pandas库计算。

df['week'] = df['date'].dt.isocalendar().week

weekly = df[['week','val3']].groupby('week', as_index=False).sum()

weekly.head()

第一行从date列中提取周。第二行将“val3”列按周分组并计算总和。

我们现在可以创建条形图。

alt.Chart(weekly).mark_bar().encode(
   x='val3:Q', y='week:O'
)

结论

我们已经介绍了5种基本但功能非常强大的可视化类型。它们都是探索数据集和揭示变量之间关系的基础。

使用Altair可以创建更复杂、信息更丰富、自定义的可视化效果。它在数据转换和过滤方面也非常高效和强大。

往期精彩回顾





本站qq群851320808,加入微信群请扫码:

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/111306