数据科学---使用Matplotlib进行数据可视化

| 1.1 Matplotlib是什么?

Matplotlib是Python中最受欢迎的数据科学库之一。它通常用来创建图、表。它还提供了通过更改颜色、标签等自定义图形的功能。

要开始使用Matplotlib,我们需要首先导入:

import matplotlib.pyplot as plt

Tips :pyplot是我们常用的模块。plt是用于导入matplotlib的最常用名称。

| 1.2 Matplotlib

MatplotlibPandas配合使用

为了展示matplotlib的力量,让我们用虚拟数据创建一个图表

Tips :我们将创建一个包含一些数字的pandas序列,并使用他来创建我们的图表。如果你对Pandas还不熟悉,可以参见Pandas进行数据操作

import pandas as pdimport matplotlib.pyplot as plt
s = pd.Series([18, 42, 9, 32, 81, 64, 3])s.plot(kind='bar')plt.savefig('plt.png')

.plot()函数被用来创建一个图表,它可以使用Pandas Series或 DataFrame。

Result:

Tips :来自该系列的数据使用Y轴,而索引绘制在X轴上。由于我们没有为数据提供自定义索引,因此使用默认的数字索引。

值得一提的是plt.savefig(“plot.png”)用于在我们的编程环境中保存和显示图表。

在大多数环境中,不需要此步骤,因为调用 plot() 函数会自动显示图表。

        

| 2.1 折线图(Line Plot)

Matplotlib支持创建不同的图表类型。

让我们从最基本的开始——线图

我们将使用COVID-19数据来创建我们的图表。

让我们看看12月份的病例数量。

要创建线图,我们只需要调用DataFrame上的plot()函数,该函数包含相应的数据:

df[df['month'] == 12]['cases'].plot()

完整代码:

import pandas as pdimport matplotlib.pyplot as plt
df = pd.read_csv("ca-covid.csv")df.drop('state', axis=1, inplace=True)df['date'] = pd.to_datetime(df['date'], format="%d.%m.%y")df['month'] = df['date'].dt.monthdf.set_index('date', inplace=True)
df[df['month'] == 12]['cases'].plot()plt.savefig('plot.png')

Result:

我们还可以在图表中包含多行。例如,让我们在DataFrame中包含死亡列:

(df[df['month'] == 12])[['cases', 'deaths']].plot()

Result:

Tips :正如您从结果中看到的,matplotlib会自动添加一个图例,以显示列的线条颜色。

        

| 3.1 条形图(Bar Plot)

plot()函数可以带一个kind参数,指定我们想要生成的图表类型。

对于条形图,请提供kind = “bar”。

让我们为每月的感染病例做一个条形图:

(df.groupby('month')['cases'].sum()).plot(kind="bar")

Result:

Tips :我们首先按月份列对数据进行分析,然后计算该月份的案例总和。

与折线图的部分类似,我们还可以绘制多列。

stacked属性可用于指定是否应将条形图堆叠在一起。​​​​​​​

df = df.groupby('month')[['cases', 'deaths']].sum()df.plot(kind="bar", stacked=True)

Result:

Tips :值得一提的是当你指定kind=“barh”,你将会得到一个水平的条形图。

Result:

        

| 4.1 框图和直方图(Box Plot & Histogram)

| 4.11 框图(Box Plot)

框图用于可视化列中值的分布,基本上可视化describe()函数的结果。

例如,让我们为6月份的案例创建一个框图:

df[df['month'] == 6]['cases'].plot(kind="box")

Result:

Tips :绿线显示中位数。框显示上四分位数和下四分位数(25%的数据大于或小于这些值)。

圆圈显示异常值,而黑线显示最先/最大值,不包括异常值。

| 4.12 直方图(Histogram)

与框图类似,直方图显示数据的分布。

视觉上直方图和条形图有些类似,然而,直方图显示一组数据的频率,而不是单个数据点;因此,每一条之间不存在空格。通常,直方图将数据分组为块。

df[df['month'] == 6]['cases'].plot(kind="hist")

Result:

Tips :直方图将数据分组为9条并且显示了频率。你能看得出来,只有单个数据点超过6000.

您可以使用bins属性手动指定要使用的bin数量:plot(kind="hist", bins = 10)

        

| 5.1 面积图、散点图和饼形图

| 5.11 面积图(Area Plot)

与上面类似,kind = 'area'来创建一个面积图。​​​​​​​

df[df['month'] == 6][['cases', 'deaths']].plot(kind="area", stacked=False)

Result:

Tips :默认情况下,区域图是堆叠的,所以在这里我们显式指定stacked=False.

| 5.12 散点图(Scatter Plot)

使用散点图来显示两个变量之间的关系。例如我们可以可视化案例与死亡人数之间的关系:​​​​​​​

df[df['month'] == 6][['cases', 'deaths']].plot(kind="scatter", x='cases', y='deaths')

Result:

Tips :我们需要指定用于绘图的x列和y列.

数据点在图表周围看起来散落,赋予了这种类型的数据可视化的名称

| 5.13 饼形图(Pie Chart)

我们可以使用kind = "pie"创建饼图。让我们按照月为案例创建一个:

df.groupby('month')['cases'].sum().plot(kind='pie')

Result:


Tips :饼图通常用于显示百分比或比例数据,当您有高达6个类别时,通常使用饼图.

        

| 6.1 绘图格式(Plot Formatting)

Matplotlib提供了许多参数来自定义您的图表。

legend参数指定是否显示图例。

您还可以通过设置xlabelylabel参数来更改轴的标签。​​​​​​​

df[['cases', 'deaths']].plot(kind='line', legend=True)plt.xlabel('Days in June')plt.ylabel('Number')

Result:

Tips :默认情况下,pandas选择索引名称为xlabel,同时将ylabel置空.

suptitle()函数可用于设置图标标题:

plt.suptitle("COVID-19 in June")

我们还可以通过设置颜色属性来更改图表中使用的颜色,它接受16进制的颜色值。

例如,让我们将病例设置为黑,将死亡设置为红色:​​​​​​​

df[['cases', 'deaths']].plot(kind='area',                             legend=True,                             stacked=False,                             color=['#000', '#E73E19'])

   

| 7.1 写在最后

本节给大家介绍了数据科学三剑客之一的matplotlib。涉及到了常见的属性和函数,并且介绍了常见的操作。后续我们会继续介绍数据科学或人工智能方面的内容。希望大家还是动手做一做,有问题可以私信我,欢迎交流和提出您的宝贵意见。

你要偷偷学Python,然后惊艳所有人。

-END-

感谢大家的关注

   你关心的,都在这里

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据分析与可视化一直是数据科学领域中最重要的部分之一。Jupyter作为一个开源的交互式计算环境,可实现数据采集、数据分析和可视化,且易于学习和使用。在这里,我们演示一个基于Jupyter的数据采集-数据分析-可视化综合案例。 首先,我们需要采集数据。我们可以通过使用Python的requests库来访问网站,并使用BeautifulSoup库提取所需数据。例如,我们可以采集电影评分网站IMDb的电影评分数据。 接下来,我们需要进行数据清洗和预处理。我们可以使用Python的pandas库来清理和加工数据。例如,我们可以删除缺失值、重复值和异常值,并将数据类型转换为适合分析和可视化的格式。 在数据预处理后,我们可以开始进行数据分析。我们可以使用Python的numpy、matplotlib和seaborn库等,在Jupyter中进行数据分析。例如,我们可以绘制电影的得分分布、类别分布和年份分布图表等。 最后,我们可以开始进行可视化。我们可以使用Python的plotly和bokeh库等,实现交互式数据可视化。例如,我们可以制作热力图、地图和动态图等,并将它们添加到Jupyter Notebook中,使读者可以与之交互。 综上所述,Jupyter是一个功能强大、易于学习和使用数据采集-数据分析-可视化综合工具。通过基于Jupyter的数据分析和可视化,我们可以更好地理解和解释数据,更好地进行决策和规划。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值