Python 绘图入门

  1. 数据可视化的概念及意义

数据可视化有着久远的历史,最早可以追溯至10世纪,至今已经应用和发展了数百年。不知名的天文学家是已知的最早尝试以图形方式显示全年当中太阳,月亮和行星的位置变化的图。

图1 数据可视化的发展历程

什么是数据可视化?

可视化其实是一个抽象 的过程,它可以简单地理解为将一个不易描述的事物形成一个可感知画面的过程,也就是从数据空间到图形空间的映射

图2 数据可视化过程

无论原始数据被映射为哪种图形数据,最终要达到的目的只有一个,便是准确地、高效地、全面地传递信息,进而建立起数据间的关系,使人们发现数据间的规律和特征 ,并挖掘出有价值的信息 ,提高数据沟通的效率

2.常见的数据可视化库

Python作为数据分析的首选语言,它针对数据分析的每个环节都提供了很多库。常见的数据可视化库包括matplotlib、seaborn、ggplot、bokeh、pygal、pyecharts。

图3

(1)Matplotlib

matplotlib是众多Python数据可视化库的鼻祖,其设计风格与20 世纪 80 年代设计的商业化程序语言MATLAB十分接近,具有很多强大且复杂的可视化功能。matplotlib包含多种类型的API,可以采用多种方式绘制图表并对图表进行定制。

(2)seaborn

seaborn是基于matplotlib进行高级封装的可视化库,它支持交互式界面,使得绘制图表的功能变得愈加容易,且图表的色彩更具吸引力,可以画出丰富多样的统计图表。

(3)ggplot

ggplot是基于matplotlib并旨在以简单方式提高matplotlib可视化感染力的库,它采用叠加图层的形式绘制图形,例如先绘制坐标轴所在的图层,再绘制点所在的图层,最后绘制线所在的图层,但其并不适用于个性化定制图形。

(4)bokeh

bokeh是一个交互式的可视化库,它支持使用Web 浏览器展示,可使用快速简单的方式将大型数据集转换成高性能的、可交互的、结构简单的图表。

(5)pygal

pygal是一个可缩放矢量图表库,用于生成可在浏览器中打开的SVG格式的图表,这种图表可以在不同比例的屏幕上自动缩放,方便用户交互。

(6)pyecharts

pyecharts是一个生成Echarts Enterprise Charts,商业产品图表)图表的库,它生成的Echarts图表凭借良好的交互性、精巧的设计得到了众多开发者的认可。

3.安装和设置

(1)如何安装这些库

这些库的安装可使用pip命令进行。例如:

pip install matplotlib

pip install 后面可以跟着具体想要安装的包名。

(2) 基本使用示例

matplotlib官网提供了三种API:pyplot API、object-oriented API、pylab API 。

  • pyplot API是使用pyplot模块开发的接口,该接口封装了一系列与MATLAB命令同名的函数,使用这些函数可以像使用MATLAB命令一样快速地绘制图表。
  • object-oriented API是面向对象的接口,该接口封装了一系列对应图表元素的类,只有创建这些类的对象并按照隶属关系组合到一起才能完成一次完整的绘图。
  • pylab API是使用pylab模块开发的接口,它最初是为了模仿MATLAB的工作方式而设计的,包括pyplot、numpy模块及一些其它附加功能,适用于Python交互环境中。

需要注意的是,matplotlib官方不建议 使用pylab API 进行开发,并在最新的版本中弃用了pylab API。用户在使用时可以根据自身的实际情况进行选择 ,若只是需要快速地绘制图表 ,可以选择pyplot API 进行开发;若需要自定义图表 ,可以选择object-oriented API进行开发。

接下来,我们使用matplotlib快速的绘制截至目前巴黎奥运会各国获得金牌数量的对比图。

图4 奖牌榜

代码:

python 复制代码
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
country = (['美国','中国','澳大利亚','法国','英国','韩国'])
data = np.array([27,25,18,13,12,12])    # 准备数据
# 在当前画布的绘图区域中绘制图表
plt.plot(country,data,'bs-')
plt.show()                                   # 展示图表

图5 金牌对比图

这就是一个简单的折线图的绘制。除此之外,如何给图增加标题,横纵坐标,以及更改刻度标签?请关注"pythons数据可视化专栏",带你入门python绘图。

相关推荐
再玩一会儿看代码几秒前
Ken的Java学习之路——Java中关于面向对象
java·开发语言·经验分享·python·学习
Q_Q5110082856 分钟前
python+django/flask的美食交流宣传系统vue
spring boot·python·pycharm·django·flask·node.js·php
Q_Q51100828510 分钟前
python+django/flask+vue的基层智能化人员调度系统pycharm-计算机毕业设计
spring boot·python·pycharm·django·flask·node.js
lapiii3583 小时前
[智能体设计模式] 第4章:反思(Reflection)
人工智能·python·设计模式
快乐非自愿4 小时前
Java垃圾收集器全解:从Serial到G1的进化之旅
java·开发语言·python
百锦再6 小时前
第11章 泛型、trait与生命周期
android·网络·人工智能·python·golang·rust·go
权泽谦6 小时前
R Shiny 交互式网页实战:从零到上线可视化应用
开发语言·信息可视化·r语言
zbhbbedp282793cl8 小时前
如何在VSCode中安装Python扩展?
ide·vscode·python
qiaochuanbiao9 小时前
用Echarts实现“庖丁解牛”的效果
信息可视化
Python私教10 小时前
Python 开发环境安装与配置全指南(2025版)
开发语言·python