python数据分析——数据可视化(图形绘制基础)

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 为了绘制好数据可视化图形,需要掌握数据分析的基础知识,例如数据类型、数据预处理、统计方法等。同时,还需要了解绘图工具的使用,例如Excel、Tableau、Python中的Matplotlib和Seaborn等。掌握数据可视化的基础知识和工具,可以帮助我们更好地理解数据和数据之间的关系,从而做出更加准确的决策和预测。

数据可视化(图形绘制基础)


前言

数据可视化是指利用图形、表格、图表等方式将数据展示出来,使得数据更加清晰、易于理解和分析。图形绘制是数据可视化的基础,通过绘制各种图形呈现数据,可以更加直观地了解数据之间的关系和趋势。

如果画图过程中出现FutureWaring问题

import warning
warnings.filterwarnings('ignore')

针对中文不显示

plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']

在当今数字化时代,数据分析已成为各行各业中不可或缺的一环。Python,作为数据分析领域的明星语言,凭借其强大的数据处理能力和丰富的库资源,正逐渐受到越来越多数据分析师的青睐。而在数据分析的过程中,数据可视化作为直观展示数据特征和规律的重要手段,更是不可或缺。

Python中,有许多专门用于数据可视化的库,其中最为著名的莫过于Matplotlib和Seaborn。Matplotlib作为Python中最早的数据可视化库,提供了丰富的绘图函数和灵活的配置选项,可以满足大部分基本的绘图需求。而Seaborn则是在Matplotlib的基础上,进一步封装和优化,提供了更加美观和高级的绘图接口。

在图形绘制基础方面,我们需要掌握几个核心概念,包括坐标轴、图例、标题、标签等。坐标轴是图表的基础,用于展示数据的分布情况;图例用于区分不同系列的数据;标题和标签则用于说明图表的主题和内容。

接下来,我们通过几个简单的例子来演示如何使用Matplotlib和Seaborn进行基本的图形绘制。

首先,我们使用Matplotlib来绘制一个简单的折线图。假设我们有一组关于某公司股票价格的数据,我们可以通过折线图来展示股票价格的走势。在Matplotlib中,我们可以使用plot()函数来绘制折线图,通过设置x轴和y轴的数据,以及图表的标题、坐标轴标签等参数,就可以生成一个基本的折线图。

接下来,我们使用Seaborn来绘制一个箱线图。箱线图是一种用于展示数据分布情况的图形,它可以直观地展示数据的最大值、最小值、中位数、四分位数等信息。在Seaborn中,我们可以使用boxplot()函数来绘制箱线图。通过传入数据集和需要展示的数据列名,以及图表的标题、坐标轴标签等参数,就可以生成一个箱线图。

当然,除了折线图和箱线图之外,还有许多其他类型的图形可以用于数据可视化,如柱状图、散点图、饼图等。每种图形都有其适用的场景和优缺点,需要根据具体的数据特征和需求来选择合适的图形类型。

总之,Python数据分析中的数据可视化是一个非常重要的环节。通过掌握基本的图形绘制技巧和选择合适的可视化工具,我们可以更加直观、清晰地展示数据的特征和规律,为数据分析和决策提供更加有力的支持。


一、图形绘制基础

Matplotlib是目前应用最为广泛的python扩展绘图模块库,是Python中最受欢迎的数据可视化软件包之一。Matplotlib支持跨平台运行,能让使用者很轻松地将数据转化为高质量图形,并且提供了多样化的输出格式,常用于绘制2D图形,同时也提供了一部分3D绘图接口。

Matplotlib提供了类似于MATLAB的绘图函数,对于熟悉MATLAB的使用者来说,可以很容易的使用它。Matplotlib通常与NumPy和pandas扩展包一起使用,最常见的使用方式是根据NumPy库的N维数组类型ndarray来绘制2D图像,使用简单、代码清晰易懂,深受广大技术爱好者的喜爱,是数据

分析中不可或缺的重要工具之一。

使用pylab或pyplot绘图时一般过程为:首先读入数据,然后根据实际需要绘制折线图、散点图、柱状图、饼状图、雷达图或三维曲线和曲面,接下来设置轴和图形属性,最后显示或保存绘图结果。

【例7.1】请利用python绘制正弦函数曲线。

关键技术:采用Matplotlib包Pyplot模块的plot函数绘制曲线图。

from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
import math
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']
x = np.arange(0,math.pi*2,0.05)
y = np.sin(x)
plt.plot(x,y)
plt.xlabel("angle")
plt.ylabel("sine")
plt.title("sine curve")
plt.show()

二、常用图形绘制

折线图的绘制

折线图是最基本的图表类型,是用点和点之间连线的上升或下降表示指标的连续变化趋势。折线图反映了一段时间内事物连续的动态变化规律,适用于描述一个变量随另一个变量变化的趋势,通常用于绘制连续数据,适合数据点较多的情况。

【例7.4】请根据给定的两组数据x和y,分别代表某城镇居民消费水平增长率和对应的年份,利用Python绘制城镇居民消费水平增长率折线图。

关键技术:利用matplotlib包的plot方法进行折线图的绘制。

y = [8.07,6.42,9.79,8.20,7.69,6.02,7.86,6.93,6.84,9.04,10.06]
x= [2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020]
plt.plot(x,y,'g',lw = 4,label = '城镇居民消费水平增长率')
plt.legend(loc = 5)
plt.grid(True)
plt.xlabel("年")
plt.ylabel('增长率')
plt.title("我国历年城镇消费水平增长率")

散点图的绘制

散点图是以直角坐标系中各点的密集程度和变化趋势来表示两种现象间的相关关系,常用于显示和比较数值。当要在不考虑时间的情况下比较大量数据点时,使用散点图比较数据方便直观。散点图将序列显示为一组点,其中每个散点值都由该点在图表中的坐标位置表示。对于不同类别的点,则由图表中不同形状或颜色的标记符表示。同时,也可以设置标记符的颜色或大小。

【例7.5】对于给定的两个市场收益率的波动情况数据x和y,请利用Python绘制散点图来反映两个市场的波动率情况。

关键技术:利用matplotlib包的plot函数进行散点图的绘制,与绘制折线图相比,绘制散点图只用到一组数据,而绘制折线图需要用到两组对应的数据。

x = np.random.randint(0,5,10)
y = np.random.randint(0,5,10)
plt.figure(figsize = (10,10))
plt.subplot(121)
plt.ylim((-5,5))
plt.plot(x,'ro',label = '第一组')
plt.grid(True)
plt.title('第一组市场波动情况')
plt.subplot(122)
plt.ylim((-5,5))
plt.plot(y,'b*',label = '第二组')
plt.grid(True)
plt.title('第二组市场波动情况')
plt.savefig('test',dpi = 600)
plt.show()

柱状图的绘制

【例7.7】对于给定的2020年9月至2021年3月期间某基金产品发行数量的数据,该数据以字典形式存储,

形式如下所示。请利用Python将其以柱状图的形式绘制出来。

{‘202009’: 2324,‘202010’: 2814,‘202011’: 2525,‘202012’: 2946,‘202101’: 3019,‘202102’: 2087,‘202103’: 3398}

关键技术:可以利用Python的matplotlib包的bar方法进行柱状图绘制。

dict = {'202009': 2324,'202010': 2814,'202011': 2525,'202012': 2946,'202101': 3019,'202102': 2087,'202103': 3398}
plt.figure (figsize= (9,5) )
plt.bar (dict.keys (),dict.values (),width=0.3, align='center' , label=' funds')
plt.grid (True)
plt.legend (loc=1)
plt.xlabel ('月')
plt.ylabel('发行数量')
plt.title('基金产品发行数量')
plt.savefig ( 'test', dpi=600)

箱型图绘制

【例7.8】下面给定的数据是某公司产品在各个国家用户的消费分布图,请根据以下数据利用Python绘制箱型图。

‘Japan’: [1200, 1300, 1500, 1400, 1600, 1600, 1800, 1800, 1900, 2400],

‘USA’: [1200, 1350, 1400, 1500, 1660, 1800, 1700, 1900, 2100, 2000],

‘Russia’: [1100, 1200, 1200, 1400, 1300, 1600, 1700, 1900, 1900, 1800],

“Korean”: [1200, 1100, 1000, 1300, 1200, 1500, 1600, 1700, 1800, 1800]

关键技术:可以利用Python的plot.box绘制箱型图。

data = {'Japan': [1200,1300,1500,1400,1600,1600,1800,1800,1900,2400],
'USA': [1200, 1350, 1400, 1500, 1660, 1800, 1700, 1900, 2100, 2000],
'Russia': [1100, 1200, 1200, 1400, 1300, 1600, 1700, 1900, 1900, 1800],
"Korean": [1200, 1100, 1000, 1300, 1200, 1500, 1600, 1700, 1800, 1800]}
df = pd.DataFrame(data)
df.plot.box(title  = "某公司产品各个国家用户消费分布图")
plt.grid(linestyle = '--',alpha = 0.3)
plt.savefig('test',dpi = 600)
plt.show()

饼状图的绘制

【例7.9】某公司有A、B、C、D、E五种商品,每种商品占有的市场份额分别为15%、30%、30%、10%和15%,请利用Python的饼状图绘制上述数据的分布图。

关键技术:可以利用Python的matplotlib包中的pie函数绘制饼状图。

import pandas as pd
import matplotlib.pyplot as plt
labels = ['A', 'B', 'C', 'D', 'E']
x = [15,30,30,10,15]
plt.pie(x, labels=labels)
plt.savefig('test',dpi=600)
plt.show ()

多个折线图的组合绘制

【例7.10】给定时间范围在2009年至2017年间两种商品的市场销售价格增长率数据集data1, data2。请利用Python的折线图将两种商品价格的增长率信息进行绘制,反映到图上。

关键技术:可以利用matplotlib包的plot函数进行多折线图的绘制。

data1 = np.random.randint(0,20,9)
data2 = np.random.randint(0,20,9)
year=[2009,2010,2011,2012,2013,2014,2015,2016,2017]
plt.plot(year,data1,lw=3,label='sales price increase rate')
plt.plot(year,data2,'r--',lw=3,label='construction costs increase rate')
plt.legend(loc=0)
plt.grid(True)
plt.xlabel('Year')
plt.ylabel('Percentage')
plt.title('sales price/construction costs increase rates')

折线图和散点图的组合绘制

【例7.11】给定某只股票从2021年12月31日到2022年1月11日的收盘价格,请利用Python的折线图和散点图组合图形式进行数据的绘制。

关键技术:可以利用Python的plot函数进行绘制。

data = np.random.randint(10,20,7)
date = ['12/31/2021','04/01/2022','05/01/2022','06/01/2022','07/01/2022','10/01/2022','11/01/2022']
plt.figure(figsize=(7,4))
plt.plot(date,data,'b',label='stock xxxxxx')
plt.plot(date,data,'ro')
plt.grid(True)
plt.legend(loc=0)
plt.xlabel('日期')
plt.ylabel('收盘价')
plt.title('close price of stock xxxxx')

【例7.11】 【例7.12】已知给定的某股票在2021年12月14日至2021年12月28日的收盘价格和交易量,请利用Python绘制双坐标轴图,其中左坐标轴反映交易量,以柱状图表示;右坐标轴反映成交价格,以折线图表示。

close=[22.23,22.59,22.36,22.47,22.85,22.79,22.76,23.82,23.97,
5.38,25.5]
date=['12/14/2021','12/15/2021','12/16/2021','12/17/2021','12/21/2021',
      '12/22/2021','12/23/2021','12/24/2021','12/25/2021','12/26/2021','12/21/2021']
vol=[34711261,35634241,40123423,39043212,45983023,429012,37584231,30029832,4039221,5023281,5598231]
fig,ax1=plt.subplots()
plt.bar(date,vol,width=0.3,label='交易量')
plt.legend(loc=1)
plt.xlabel('日 期')
plt.ylabel('交易量')
plt.title('stock xxxxxx')
plt.xticks(rotation = 60)
ax2=ax1.twinx()
plt.plot(close,'r',lw=2,label='收盘价')
plt.grid(True)
plt.legend(loc=8)
plt.ylabel('收盘价')
plt.savefig('test', dpi=600 , pad_inches='tight')


总结

为了绘制好数据可视化图形,需要掌握数据分析的基础知识,例如数据类型、数据预处理、统计方法等。同时,还需要了解绘图工具的使用,例如Excel、Tableau、Python中的Matplotlib和Seaborn等。掌握数据可视化的基础知识和工具,可以帮助我们更好地理解数据和数据之间的关系,从而做出更加准确的决策和预测。

相关文章
|
20天前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
51 0
|
15天前
|
数据可视化 数据挖掘 定位技术
Python和Geopandas进行地理数据可视化
【10月更文挑战第22天】本文介绍了如何使用Python和Geopandas进行地理数据可视化和分析,涵盖从准备工作、加载数据、数据探索与处理、地理数据可视化、空间分析与查询到交互式地理数据可视化等内容。通过丰富的代码示例和案例演示,帮助读者掌握地理数据分析的基本方法,为实际应用提供支持。
57 19
|
5天前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第42天】本文将介绍如何使用Python进行数据分析和可视化。我们将从数据导入、清洗、探索性分析、建模预测,以及结果的可视化展示等方面展开讲解。通过这篇文章,你将了解到Python在数据处理和分析中的强大功能,以及如何利用这些工具来提升你的工作效率。
|
10天前
|
移动开发 数据可视化 数据挖掘
利用Python实现数据可视化:以Matplotlib和Seaborn为例
【10月更文挑战第37天】本文旨在引导读者理解并掌握使用Python进行数据可视化的基本方法。通过深入浅出的介绍,我们将探索如何使用两个流行的库——Matplotlib和Seaborn,来创建引人入胜的图表。文章将通过具体示例展示如何从简单的图表开始,逐步过渡到更复杂的可视化技术,帮助初学者构建起强大的数据呈现能力。
|
14天前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
33 2
|
21天前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
31 2
|
26天前
|
数据可视化 数据挖掘 Python
使用Python进行数据可视化:探索与实践
【10月更文挑战第21天】本文旨在通过Python编程,介绍如何利用数据可视化技术来揭示数据背后的信息和趋势。我们将从基础的图表创建开始,逐步深入到高级可视化技巧,包括交互式图表和动态展示。文章将引导读者理解不同图表类型适用的场景,并教授如何使用流行的库如Matplotlib和Seaborn来制作美观且具有洞察力的可视化作品。
47 7
|
25天前
|
数据可视化 定位技术 Python
使用Python进行数据可视化
【10月更文挑战第22天】在这篇文章中,我们将深入探讨如何使用Python进行数据可视化。我们将从基础的图表开始,然后逐步进入更复杂的可视化技术。我们将通过实例代码来展示如何实现这些可视化,以便读者能够更好地理解和应用这些技术。
22 5
|
26天前
|
数据可视化 Python
使用Python进行数据可视化的初学者指南
【10月更文挑战第20天】本文旨在为编程新手提供一个简洁明了的入门指南,通过Python语言实现数据可视化。我们会介绍如何安装必要的库、理解数据结构,并利用这些知识来创建基本图表。文章将用通俗易懂的语言和示例代码,帮助读者快速掌握数据可视化的基础技能。
31 4
|
26天前
|
数据采集 数据可视化 数据挖掘
R语言与Python:比较两种数据分析工具
R语言和Python是目前最流行的两种数据分析工具。本文将对这两种工具进行比较,包括它们的历史、特点、应用场景、社区支持、学习资源、性能等方面,以帮助读者更好地了解和选择适合自己的数据分析工具。
27 2
下一篇
无影云桌面