作者: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.1else: 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是一款功能强大的数据绘图工具,非常值得学习。

转载于:https://www.cnblogs.com/vamei/archive/2012/09/17/2689798.html

绘图: Python matplotlib简介相关推荐

  1. python并行运算库_最佳并行绘图Python库简介:“ HiPlot”

    python并行运算库 HiPlot is Facebook's Python library to support visualization of high-dimensional data ta ...

  2. python安装绘图库matplotlib_Python基础教程:Python 2D绘图库 Matplotlib 简介和安装

    原标题:Python基础教程:Python 2D绘图库 Matplotlib 简介和安装 来自:Linux迷https://www.linuxmi.com/python-2d-matplotlib.h ...

  3. python画图包-Python 绘图包 Matplotlib Pyplot 教程

    Pyplot 接口简介 Pyplot 入门 matplotlib.pyplot?是命令风格函数的集合,使 Matplotlib 像 MATLAB 一样工作.每个 Pyplot 函数对图形做一些修改,例 ...

  4. python画图三维-Python三维绘图之Matplotlib库的使用方法

    前言 在遇到三维数据时,三维图像能给我们对数据带来更加深入地理解.python的matplotlib库就包含了丰富的三维绘图工具. 1.创建三维坐标轴对象Axes3D 创建Axes3D主要有两种方式, ...

  5. python绘图实例-Python matplotlib基础绘图函数示例

    原标题:Python matplotlib基础绘图函数示例 Pyplot基础图标函数: 函数 说明 plt.plot(x,y,fmt,-) 绘制一个坐标图 plt.boxplot(data,notch ...

  6. python绘制3d图-Python matplotlib绘图示例 - 绘制三维图形

    Python matplotlib模块是扩展的MATLAB的一个绘图工具库.它可以绘制各种图形,下面就学习了下Python中的matplotlib模块,如何绘制三维图形. 示例代码一: # codin ...

  7. Python绘图之matplotlib基础教程:matplotlib库图表绘制中常规设置大全(交互模式、清除原有图像、设置横坐标显示文字/旋转角度、添加图例、绘图布局自动调整、图像显示、图像暂停)

    Python绘图之matplotlib基础教程:matplotlib库图表绘制中常规设置大全(交互模式.清除原有图像.设置横坐标显示文字/旋转角度.添加图例.绘图布局自动调整.图像显示.图像暂停) 目 ...

  8. Python3 matplotlib的绘图函数subplot()简介

    Python3 matplotlib的绘图函数subplot()简介 一.简介 matplotlib下, 一个 Figure 对象可以包含多个子图(Axes), 可以使用 subplot() 快速绘制 ...

  9. python pandas库 画图_python绘图:matplotlib和pandas的应用

    python绘图:matplotlib和pandas的应用 在进行数据分析时,绘图是必不可少的模式探索方式.用Python进行数据分析时,matplotlib和pandas是最常用到的两个库. 1.m ...

最新文章

  1. M_Map画南海水深地形图
  2. 商汤三体梦幻联动,能遭遇水滴的那种元宇宙要来了!我在现场听见了次元壁破碎的声音...
  3. Lua和C++交互总结(很详细)
  4. Linux下用GDB调试程序崩溃错误
  5. 复习-css列表和表格相关属性
  6. python中封装是什么意思_Python中数据封装是什么?
  7. linux 常用头文件,(常用头文件详解.doc
  8. PL/SQL Developer SQL Window中不能插入多条数据
  9. Java Socket TeXT_FULL_WRITING 等问题解决
  10. java中序列化之子类继承父类序列化
  11. distcp用于集群中数据传输解读
  12. 拓端tecdat|红圈律所微信公众号图文数据报告
  13. 刷淘宝流量软件推荐 免费刷淘宝流量软件优缺点
  14. Linux修改MySQL数据库密码
  15. 层次分析法(AHP)介绍
  16. 另类搞笑:自我指涉例句不完全收集
  17. 解释什么是啸叫,为什么会发生啸叫,啸叫的为何和如何防止啸叫
  18. Tomcat无法启动,报错java.lang.NoClassDefFoundError: or...
  19. Linux(程序设计):29---Zlib库(数据压缩与解压)
  20. Excel怎么把数字样式日期转为标准日期格式

热门文章

  1. 最小覆盖子串_滑动窗口
  2. QT之error: cannot bind non-const lvalue reference of type ‘CBaowen’ to an rvalue of type ‘CBaowen
  3. php server 域名,php 关于如何获取域名或者IP地址的$_SERVER['']
  4. 谈谈如何利用 valgrind 排查内存错误
  5. [算法笔记]-环形链表Ⅱ-解题方法
  6. 服务器建立共享后无法写入文件,Win7 局域网共享问题,XP访问Win7复制或写入一会文件之后出现无法访问,您没有权限,或者说服务器空间不足...
  7. 命令行参数的模式匹配
  8. NightWatchMan
  9. hdu 6396 Swordsman (技巧)
  10. 四、MyBatis-映射文件