绘图: Python matplotlib简介
作者: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简介相关推荐
- python并行运算库_最佳并行绘图Python库简介:“ HiPlot”
python并行运算库 HiPlot is Facebook's Python library to support visualization of high-dimensional data ta ...
- python安装绘图库matplotlib_Python基础教程:Python 2D绘图库 Matplotlib 简介和安装
原标题:Python基础教程:Python 2D绘图库 Matplotlib 简介和安装 来自:Linux迷https://www.linuxmi.com/python-2d-matplotlib.h ...
- python画图包-Python 绘图包 Matplotlib Pyplot 教程
Pyplot 接口简介 Pyplot 入门 matplotlib.pyplot?是命令风格函数的集合,使 Matplotlib 像 MATLAB 一样工作.每个 Pyplot 函数对图形做一些修改,例 ...
- python画图三维-Python三维绘图之Matplotlib库的使用方法
前言 在遇到三维数据时,三维图像能给我们对数据带来更加深入地理解.python的matplotlib库就包含了丰富的三维绘图工具. 1.创建三维坐标轴对象Axes3D 创建Axes3D主要有两种方式, ...
- python绘图实例-Python matplotlib基础绘图函数示例
原标题:Python matplotlib基础绘图函数示例 Pyplot基础图标函数: 函数 说明 plt.plot(x,y,fmt,-) 绘制一个坐标图 plt.boxplot(data,notch ...
- python绘制3d图-Python matplotlib绘图示例 - 绘制三维图形
Python matplotlib模块是扩展的MATLAB的一个绘图工具库.它可以绘制各种图形,下面就学习了下Python中的matplotlib模块,如何绘制三维图形. 示例代码一: # codin ...
- Python绘图之matplotlib基础教程:matplotlib库图表绘制中常规设置大全(交互模式、清除原有图像、设置横坐标显示文字/旋转角度、添加图例、绘图布局自动调整、图像显示、图像暂停)
Python绘图之matplotlib基础教程:matplotlib库图表绘制中常规设置大全(交互模式.清除原有图像.设置横坐标显示文字/旋转角度.添加图例.绘图布局自动调整.图像显示.图像暂停) 目 ...
- Python3 matplotlib的绘图函数subplot()简介
Python3 matplotlib的绘图函数subplot()简介 一.简介 matplotlib下, 一个 Figure 对象可以包含多个子图(Axes), 可以使用 subplot() 快速绘制 ...
- python pandas库 画图_python绘图:matplotlib和pandas的应用
python绘图:matplotlib和pandas的应用 在进行数据分析时,绘图是必不可少的模式探索方式.用Python进行数据分析时,matplotlib和pandas是最常用到的两个库. 1.m ...
最新文章
- M_Map画南海水深地形图
- 商汤三体梦幻联动,能遭遇水滴的那种元宇宙要来了!我在现场听见了次元壁破碎的声音...
- Lua和C++交互总结(很详细)
- Linux下用GDB调试程序崩溃错误
- 复习-css列表和表格相关属性
- python中封装是什么意思_Python中数据封装是什么?
- linux 常用头文件,(常用头文件详解.doc
- PL/SQL Developer SQL Window中不能插入多条数据
- Java Socket TeXT_FULL_WRITING 等问题解决
- java中序列化之子类继承父类序列化
- distcp用于集群中数据传输解读
- 拓端tecdat|红圈律所微信公众号图文数据报告
- 刷淘宝流量软件推荐 免费刷淘宝流量软件优缺点
- Linux修改MySQL数据库密码
- 层次分析法(AHP)介绍
- 另类搞笑:自我指涉例句不完全收集
- 解释什么是啸叫,为什么会发生啸叫,啸叫的为何和如何防止啸叫
- Tomcat无法启动,报错java.lang.NoClassDefFoundError: or...
- Linux(程序设计):29---Zlib库(数据压缩与解压)
- Excel怎么把数字样式日期转为标准日期格式
热门文章
- 最小覆盖子串_滑动窗口
- QT之error: cannot bind non-const lvalue reference of type ‘CBaowen’ to an rvalue of type ‘CBaowen
- php server 域名,php 关于如何获取域名或者IP地址的$_SERVER['']
- 谈谈如何利用 valgrind 排查内存错误
- [算法笔记]-环形链表Ⅱ-解题方法
- 服务器建立共享后无法写入文件,Win7 局域网共享问题,XP访问Win7复制或写入一会文件之后出现无法访问,您没有权限,或者说服务器空间不足...
- 命令行参数的模式匹配
- NightWatchMan
- hdu 6396 Swordsman (技巧)
- 四、MyBatis-映射文件