matplotlib入门--1(条形图, 直方图, 盒须图, 饼图)
作图首先要进行数据的输入,matplotlib包只提供作图相关功能,本身并没有数据读入、输出函数,针对各种试验或统计文本数据输入可以使用numpy提供的数据输入函数。
# -*- coding: gbk -*-
"""
Created on Sun Jan 11 11:17:42 2015 @author: zhang
"""
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl mpl.rcParams['font.family'] = 'sans-serif'
mpl.rcParams['font.sans-serif'] = [u'SimHei'] #生成数据
dataOut = np.arange(24).reshape(4, 6)
print(dataOut) #保存数据
np.savetxt('data.txt', dataOut, fmt = '%.1f') #读取数据
data = np.loadtxt('data.txt')
print(data)
plot 和 bar 函数
# -*- coding: gbk -*-
"""
Created on Sun Jan 11 11:33:14 2015 @author: zhang
"""
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl mpl.rcParams['font.family'] = 'sans-serif'
mpl.rcParams['font.sans-serif'] = [u'SimHei'] data = np.random.randint(1, 11, 5)
x = np.arange(len(data)) plt.plot(x, data, color = 'r')
plt.bar(x, data, alpha = .5, color = 'g') plt.show()
结果图片
饼图
# -*- coding: gbk -*-
"""
Created on Sun Jan 11 11:33:14 2015 @author: zhang
"""
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl mpl.rcParams['font.family'] = 'sans-serif'
mpl.rcParams['font.sans-serif'] = [u'SimHei'] data = np.random.randint(1, 11, 5)
x = np.arange(len(data)) #plt.plot(x, data, color = 'r')
#plt.bar(x, data, alpha = .5, color = 'g')
plt.pie(data, explode = [0,0,.2, 0, 0]) plt.show
在实际工作中经常要对多组数据进行对比分析,这样需要在一个图表里表示出多个数据集。plot函数多数据集表示方法:
# -*- coding: gbk -*-
"""
Created on Sun Jan 11 11:51:41 2015 @author: zhang
"""
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl mpl.rcParams['font.family'] = 'sans-serif'
mpl.rcParams['font.sans-serif'] = [u'SimHei'] data = np.random.randint(1, 5, (5, 2))
x = np.arange(len(data)) plt.plot(x, data[:, 0], '--', color = 'm')
plt.plot(x, data[:, 1], '-.', color = 'c') plt.show()
这里用到了matplotlib中defered rendering的概念,它是指在绘图过程中,只有你调用到plt.plot函数是其它的绘图指令才会起效。
也可以通过对条形图的定制实现数据对比,主要有这几种类型 multy bar chart;stack bar chart和back to back bar chart
# -*- coding: gbk -*-
"""
Created on Sun Jan 11 12:03:57 2015 @author: zhang
"""
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl mpl.rcParams['font.family'] = 'sans-serif'
mpl.rcParams['font.sans-serif'] = [u'SimHei']
mpl.rcParams['axes.unicode_minus'] = False data = np.random.randint(1, 5, [3, 4])
index = np.arange(data.shape[1])
color_index = ['r', 'g', 'b'] fig, (ax1, ax2, ax3) = plt.subplots(3, 1, figsize = (5, 12)) for i in range(data.shape[0]):
ax1.bar(index + i*.25 + .1, data[i], width = .25, color = color_index[i],\
alpha = .5) for i in range(data.shape[0]):
ax2.bar(index + .25, data[i], width = .5, color = color_index[i],\
bottom = np.sum(data[:i], axis = 0), alpha = .7) ax3.barh(index, data[0], color = 'r', alpha = .5)
ax3.barh(index, -data[1], color = 'b', alpha = .5) plt.show()
plt.savefig('complex_bar_chart')
统计中常用的两种图标是直方图和盒须图,matplotlib中有针对这两种图表的专门函数:hist和boxplot
# -*- coding: gbk -*-
"""
Created on Sun Jan 11 12:29:34 2015 @author: zhang
"""
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl mpl.rcParams['font.family'] = 'sans-serif'
mpl.rcParams['font.sans-serif'] = [u'SimHei'] data = np.random.randn(100) fig, (ax1, ax2) = plt.subplots(1, 2, figsize = (8, 4)) ax1.hist(data)
ax2.boxplot(data) plt.savefig('hist_boxplot')
plt.show()
本文讲到的所有matplotlib命令都有非常丰富的定制参数,我会在后面文章中讲到,你也可以查看帮助文档学习。
matplotlib入门--1(条形图, 直方图, 盒须图, 饼图)的更多相关文章
- Qt数据可视化(散点图、折线图、柱状图、盒须图、饼状图、雷达图)开发实例
目录 散点图 折线图 柱状图 水平柱状图 水平堆叠图 水平百分比柱状图 盒须图 饼状图 雷达图 Qt散点图.折线图.柱状图.盒须图.饼状图.雷达图开发实例. 在开发过程中我们会使用多各种各样的图 ...
- python数据处理-matplotlib入门(4)-条形图和直方图
摘要:先介绍条形图直方图,然后用随机数生成一系列数据,保存到列表中,最后统计出相关随机数据的概率并展示 前述介绍了由点进行划线形成的拆线图和散点形成的曲线图,连点成线,主要用到了matplotlib中 ...
- 06. Matplotlib 2 |折线图| 柱状图| 堆叠图| 面积图| 填图| 饼图| 直方图| 散点图| 极坐标| 图箱型图
1.基本图表绘制 plt.plot() 图表类别:线形图.柱状图.密度图,以横纵坐标两个维度为主同时可延展出多种其他图表样式 plt.plot(kind='line', ax=None, figsiz ...
- 利用pandas读取Excel表格,用matplotlib.pyplot绘制直方图、折线图、饼图
利用pandas读取Excel表格,用matplotlib.pyplot绘制直方图.折线图.饼图 数据: 折线图代码: import pandas as pdimport matplotlib. ...
- 绘图神器-matplotlib入门
这次,让我们使用一个非常有名且十分有趣的玩意儿来完成今天的任务,它就是jupyter. 一.安装jupyter matplotlib入门之前,先安装好jupyter.这里只提供最为方便快捷的安装方式: ...
- Matplotlib 入门
章节 Matplotlib 安装 Matplotlib 入门 Matplotlib 基本概念 Matplotlib 图形绘制 Matplotlib 多个图形 Matplotlib 其他类型图形 Mat ...
- Matplotlib基本图形之直方图
Matplotlib基本图形之直方图 直方图特点 由一系列高度不等的纵向条形组成,表示数据分布情况例如年级同学身高分布注意与条形图的区别 示例代码: import osimport numpy as ...
- Python 绘图库Matplotlib入门教程
0 简单介绍 Matplotlib是一个Python语言的2D绘图库,它支持各种平台,并且功能强大,能够轻易绘制出各种专业的图像. 1 安装 pip install matplotlib 2 入门代码 ...
- 用matplotlib制作的比较满意的蜡烛图
用matplotlib制作的比较满意的蜡烛图 2D图形制作包, 功能强大, 习练了很久, 终于搞定了一个比较满意的脚本. 特点: 使用方面要非常简单 绘制出来的图要非常的满意, 具有如下的特点 时间和 ...
随机推荐
- Rotation Lock Puzzle
Problem Description Alice was felling into a cave. She found a strange door with a number square mat ...
- WCF分布式事务
原文地址:http://developer.51cto.com/art/201002/185426.htm 我们作为一个开发人员,应该能够顺应技术的不断发展,不断的去掌握新技术.那么,对于WCF的掌握 ...
- android webview load 本地文件需要注意的地方
记得在工程的main下必须是assets文件夹. 而webview.loadUrl时 必须是 android_asset 必须这样对应,否则无法加载本地html. 具体原因只能在深入学习后再总结了 ...
- TXT四则运算计算器
基本思想:使用getline函数从TXT文件中依次读出中缀表达式,将其转为后缀表达式后计算结果,并与用户结果比对. 整数.分数.小数的处理:将小数和整数都视为默认分母为1的分数.建立分数类,在中缀转换 ...
- [Locked] Wiggle Sort
Wiggle Sort Given an unsorted array nums, reorder it in-place such that nums[0] <= nums[1] >= ...
- 面向GC的Java编程
转自http://hellojava.info/?p=341 HelloJava微信公众账号网站 面向GC的Java编程 Leave a reply 这是内部一个同事(沐剑)写的文章,国外有一家专门做 ...
- php同时循环两个数组
<? $yurl=$row[yurl]; $yurl_name=$row[yurl_name]; $var=explode("|",$yurl); $var2=explode ...
- iOS开发之监测网络状态
一.说明 在网络应用中,需要对用户设备的网络状态进行实时监控,有两个目的: (1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能) (2)根据用户的网络状态进行智能处理,节省用户流量,提高用户 ...
- J2EE之WebLogic Server
WebLogic是用于开发.集成.部署和管理大型分布式Web应用. 网络应用和数据库应 用的Java应用server. 将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用 ...
- PHP学习路径
php学习大致可分为三个阶段: 第一阶段:基础知识,页面布局. 学习内容:html.div+css.js. 学习目标:div+css设计. 阶段二:php核心知识和数据库交互. 学习内容:php核心知 ...