绘图: Python matplotlib简介

简介: 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!   matplotlib是基于numpy的一套Python工具包。这个包提供了丰富的数据绘图工具,主要用于绘制一些统计图形。

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

 

matplotlib是基于numpy的一套Python工具包。这个包提供了丰富的数据绘图工具,主要用于绘制一些统计图形。你可以找到很多各式各样的例子

 

通过数据绘图,我们可以将枯燥的数字转换成容易被人们接受的图表,从而让人留下更加深刻的印象。实际上,早在一百多年前,南丁格尔就曾经用统计图形来说服英国政府,以改善军队的卫生状况。

我们将以GDP数据为例子,看看如何绘制经典的饼图和条形图。

 

数据

下面是我们要使用的数据,为2011年GDP前十的国家以及其具体的GDP:

USA        15094025
China      11299967
India       4457784
Japan       4440376
Germany     3099080
Russia      2383402
Brazil      2293954
UK          2260803
France      2217900
Italy       1846950                                                                                                                                                                                                                                 

 

饼图

我们先来绘制饼图 (pie plot)。饼图适用于表达各个国家GDP所占的百分比。每一小块的面积代表了占比的多少:

具体代码如下,可以看到我们主要使用了matplotlib.pyplot工具包:

# Make a pie chart
# This script is written by Vamei, http://www.cnblogs.com/vamei
# you may freely use it.

import matplotlib.pyplot as plt
# quants: GDP
# labels: country name
labels   = []
quants   = []
# Read data
for line in file('../data/major_country_gdp'):
    info = line.split()
    labels.append(info[0])
    quants.append(float(info[1]))

# make a square figure
plt.figure(1, figsize=(6,6))

# For China, make the piece explode a bit
def explode(label, target='China'):
    if label == target: return 0.1
    else: return 0
expl = map(explode,labels)
# Colors used. Recycle if not enough.
colors  = ["pink","coral","yellow","orange"]
# Pie Plot
# autopct: format of "percent" string;
plt.pie(quants, explode=expl, colors=colors, labels=labels, autopct='%1.1f%%',pctdistance=0.8, shadow=True)
plt.title('Top 10 GDP Countries', bbox={'facecolor':'0.8', 'pad':5})

plt.show()

 

条形图

下面我们尝试一下条形图(bar plot)。用每个长条的高度代表每个国家的GDP,长条越高,GDP值越高:

代码如下:

"""
Make a pie chart
This script is written by Vamei, http://www.cnblogs.com/vamei
you may freely use it.
"""
import matplotlib.pyplot as plt
import numpy as np
# quants: GDP
# labels: country name
labels   = []
quants   = []
# Read data
for line in file('../data/major_country_gdp'):
    info = line.split()
    labels.append(info[0])
    quants.append(float(info[1]))

width = 0.4
ind = np.linspace(0.5,9.5,10)
# make a square figure
fig = plt.figure(1, figsize=(12,6))
ax  = fig.add_subplot(111)
# Bar Plot
ax.bar(ind-width/2,quants,width,color='coral')

# Set the ticks on x-axis
ax.set_xticks(ind)
ax.set_xticklabels(labels)
# labels
ax.set_xlabel('Country')
ax.set_ylabel('GDP (Billion US dollar)')
# title
ax.set_title('Top 10 GDP Countries', bbox={'facecolor':'0.8', 'pad':5})
plt.show()

该代码中我们利用了ax对象,以便控制刻度以及刻度所对应的国家名。这与我们在pie plot所做的有些不同(pie plot也可以这样实现,只是没有必要而已)。

 

从两个图上看,亚洲国家的GDP还是很厉害的。西方的话就是美国一枝独秀了。

 

总结

我们演示了饼图和条性图的绘制方法。matplotlib是一款功能强大的数据绘图工具,非常值得学习。

目录
相关文章
|
5天前
|
移动开发 数据可视化 数据挖掘
利用Python实现数据可视化:以Matplotlib和Seaborn为例
【10月更文挑战第37天】本文旨在引导读者理解并掌握使用Python进行数据可视化的基本方法。通过深入浅出的介绍,我们将探索如何使用两个流行的库——Matplotlib和Seaborn,来创建引人入胜的图表。文章将通过具体示例展示如何从简单的图表开始,逐步过渡到更复杂的可视化技术,帮助初学者构建起强大的数据呈现能力。
|
13天前
|
数据可视化 JavaScript 前端开发
Python中交互式Matplotlib图表
【10月更文挑战第20天】Matplotlib 是 Python 中最常用的绘图库之一,但默认生成的图表是静态的。通过结合 mpld3 库,可以轻松创建交互式图表,提升数据可视化效果。本文介绍了如何使用 mpld3 在 Python 中创建交互式散点图、折线图和直方图,并提供了详细的代码示例和安装方法。通过添加插件,可以实现缩放、平移和鼠标悬停显示数据标签等交互功能。希望本文能帮助读者掌握这一强大工具。
39 5
|
1月前
|
网络协议 Java Linux
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
本文介绍了PyAV库,它是FFmpeg的Python绑定,提供了底层库的全部功能和控制。文章详细讲解了PyAV的安装过程,包括在Windows、Linux和ARM平台上的安装步骤,以及安装中可能遇到的错误和解决方法。此外,还解释了时间戳的概念,包括RTP、NTP、PTS和DTS,并提供了Python代码示例,展示如何获取RTSP流中的各种时间戳。最后,文章还提供了一些附录,包括Python通过NTP同步获取时间的方法和使用PyAV访问网络视频流的技巧。
179 4
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
|
17天前
|
数据采集 数据可视化 数据处理
如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`)
本文介绍了如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`),加载历史数据,计算均线和其他技术指标,实现交易逻辑,记录和可视化交易结果。示例代码展示了如何根据均线交叉和价格条件进行开仓、止损和止盈操作。实际应用时需注意数据质量、交易成本和风险管理。
37 5
|
1月前
|
程序员 PHP Python
Python3 简介
【10月更文挑战第8天】Python3 简介。
26 4
|
1月前
|
数据可视化 Python
Python 高级绘图:探索数据可视化
在Python中,利用matplotlib、seaborn等库可实现数据的可视化。matplotlib功能丰富,支持基础图表绘制;seaborn则提供了更美观的默认样式。此外,matplotlib还支持3D图形及动态图表的生成,满足多样化的数据展示需求。 示例代码展示了如何使用这些库绘制正弦波、散点图、3D曲面图及动态更新的折线图。通过numpy生成数据,并借助matplotlib与seaborn的强大绘图功能,实现数据的直观呈现。
70 17
|
1月前
|
存储 关系型数据库 数据库
轻量级数据库的利器:Python 及其内置 SQLite 简介
轻量级数据库的利器:Python 及其内置 SQLite 简介
|
1月前
|
数据可视化 数据挖掘 API
Python中的数据可视化利器:Matplotlib与Seaborn对比解析
在Python数据科学领域,数据可视化是一个重要环节。它不仅帮助我们理解数据,更能够让我们洞察数据背后的故事。本文将深入探讨两种广泛使用的数据可视化库——Matplotlib与Seaborn,通过对比它们的特点、优劣势以及适用场景,为读者提供一个清晰的选择指南。无论是初学者还是有经验的开发者,都能从中找到有价值的信息,提升自己的数据可视化技能。
83 3
|
30天前
|
数据可视化 定位技术 Python
Python数据可视化--Matplotlib--入门
Python数据可视化--Matplotlib--入门
23 0
|
1月前
|
数据可视化 Python
Python 高级绘图:从基础到进阶的可视化实践
本文介绍了使用 Python 的强大绘图库 matplotlib 实现多种图表绘制的方法,包括简单的折线图、多条折线图、柱状图、饼图、散点图及 3D 图的绘制。通过具体代码示例展示了如何设置轴标签、标题、图例等元素,并指出了 matplotlib 支持更多高级绘图功能。来源:https://www.wodianping.com/app/2024-10/47112.html。
77 0