matplotlib 学习总结

作者:csj
更新时间:01.09

email:59888745@qq.com

说明:因内容较多,会不断更新 xxx学习总结;

回主目录:2017 年学习记录和总结

# matplotlib 及环境配置
# 数据图的组成结构,与 matplotlib 对应的名称
# 常见的数据绘图类型,与绘制方法
# 您可能需要以下的准备与先修知识:
# Python开发环境及matplotlib工具包
# Python基础语法
# Python numpy 包使用 # 一幅数据图基本上包括如下结构:
# Data: 数据区,包括数据点、描绘形状
# Axis: 坐标轴,包括 X 轴、 Y 轴及其标签、刻度尺及其标签
# Title: 标题,数据图的描述
# Legend: 图例,区分图中包含的多种曲线或不同分类的数据
# 其他的还有图形文本 (Text)、注解 (Annotate)等其他描述 # 导入 matplotlib 包相关工具包
# 准备数据,numpy 数组存储
# 绘制原始曲线
# 配置标题、坐标轴、刻度、图例
# 添加文字说明、注解
# 显示、保存绘图结果
import matplotlib.pyplot as plt
import numpy as np x = np.arange(0,10,0.2)
y = np.sin(x) plt.rcParams['figure.figsize']=(12,6)# x zhou lenght =12,y zhou lenght ==6
plt.plot(x,y,color='#0F5E0F',linestyle='--',marker='*',label=r'$ s=sin{x} $')
ax = plt.subplot(111)
#配置标题、坐标轴、刻度、图例,hide top,right border line
ax.spines['right'].set_color('none') # delete the right borther line
ax.spines['top'].set_color('none') #delete the top borter line
#ax.xaxis.set_ticks_position('bottom')
#ax.spines['bottom'].set_position(('data', 0)) #move the x zhou to 0.00 # 移动左边边框线,相当于移动 y 轴
#ax.yaxis.set_ticks_position('left')
#ax.spines['left'].set_position(('data', 0))
#plt.title(r'$the \ function \ figure \ of \ cos(), \ sin() \ and \ sqrt()$', fontsize=19)
plt.title(r' this is title name ',fontsize=19) plt.xlabel(r'x', fontsize=18, labelpad=12)
plt.ylabel(r'y', fontsize=18, labelpad=12.5)
#设置文字描述、注解
plt.text(0.8, 0.9, r'$x \in [0.0, \ 10.0]$', color='k', fontsize=15)
plt.text(0.8, 0.8, r'$y \in [-1.0, \ 4.0]$', color='k', fontsize=15)
#设置图例及位置
plt.legend(['cos(x)'],loc='upper right')

# 特殊点添加注解
plt.scatter([8,],[np.sqrt(8),], 50, color ='m') # 使用散点图放大当前点
plt.annotate(r'$2\sqrt{2}$', xy=(8, np.sqrt(8)), xytext=(8.5, 2.2), fontsize=16, color='#090909', arrowprops=dict(arrowstyle='->', connectionstyle='arc3, rad=0.1', color='#090909'))

# 显示网格线
#plt.grid(True)

plt.show()

2 常用图形

曲线图:

matplotlib.pyplot.plot(data)
x =np.arange(-5,5,0.1)
y = x**2
plt.plot(x,y)
plt.show()

灰度图:
matplotlib.pyplot.hist(data)
x =[1,2,3,4,5,6,7,8]
plt.hist(x,bins=16)
plt.show()

散点图:
# x =[1,2,3,4,5,6,7,8]
# y =[1,2,3,4,5,6,7,8]
matplotlib.pyplot.scatter(data)
x=np.random.normal(size=100)
y=np.random.normal(size=100)
plt.scatter(x,y)
plt.show()

箱式图:
x =[1,2,3,4,5,6,7,8]
plt.boxplot(x)
plt.show()

remark:

ax.scatter(x_data, y_data, color='r', alpha = 0.75 )

# 柱状图
plt.bar(x,y)

# 定义绘制柱状图的函数
def barplot(x_data, y_data, error_data, x_label, y_label, title):
_, ax = plt.subplots()
# 柱状图
ax.bar(x_data, y_data, color = '#539caf', align = 'center')
# 绘制方差
# ls='none'去掉bar之间的连线
ax.errorbar(x_data, y_data, yerr = error_data, color = '#297083', ls = 'none', lw = 5)
ax.set_ylabel(y_label)
ax.set_xlabel(x_label)
ax.set_title(title)

# 绘图函数调用
barplot(x_data = mean_total_co_day.index.values
, y_data = mean_total_co_day['mean']
, error_data = mean_total_co_day['std']
, x_label = 'Day of week'
, y_label = 'Check outs'
, title = 'Total Check Outs By Day of Week (0 = Sunday)')

# 不同种类(species)鸢尾花萼片和花瓣的大小关系(分类散点子图),中文处理
plt.scatter(data['sepal_length'] , data['petal_length'], color='r', alpha=0.7)
plt.scatter(data['petal_width'], data['petal_width'], color='b', alpha=0.7)
plt.xlabel("x")
plt.ylabel("y")
plt.title("萼片与花瓣的比较".decode('utf-8'))
plt.legend(['萼片与花瓣长度比较'.decode('utf-8'), '萼片与花瓣宽度比较'.decode('utf-8')], loc='upper left')

总结:
关联分析、数值比较:散点图、曲线图
分布分析:灰度图、密度图
涉及分类的分析:柱状图、箱式图

更全的参考
http://matplotlib.org/api/index.html

 

matplotlib 学习总结的更多相关文章

  1. Matplotlib学习笔记(二)

    原  Matplotlib学习笔记 参考:Python数据科学入门教程 Python3.6.1 jupyter notebook .caret, .dropup > .btn > .car ...

  2. Matplotlib学习笔记(一)

    原   matplotlib学习笔记 参考:Python数据科学入门教程 Python3.6.1 jupyter notebook .caret, .dropup > .btn > .ca ...

  3. Matplotlib学习---用matplotlib画箱线图(boxplot)

    箱线图通过数据的四分位数来展示数据的分布情况.例如:数据的中心位置,数据间的离散程度,是否有异常值等. 把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q3)分 ...

  4. Matplotlib学习---matplotlib的一些基本用法

    Matplotlib有两种接口,一种是matlab风格接口,一种是面向对象接口.在这里,统一使用面向对象接口.因为面向对象接口可以适应更复杂的场景,在多图之间进行切换将变得非常容易. 首先导入matp ...

  5. Matplotlib学习---用matplotlib画直方图/密度图(histogram, density plot)

    直方图用于展示数据的分布情况,x轴是一个连续变量,y轴是该变量的频次. 下面利用Nathan Yau所著的<鲜活的数据:数据可视化指南>一书中的数据,学习画图. 数据地址:http://d ...

  6. Matplotlib 学习笔记

    注:该文是上了开智学堂数据科学基础班的课后做的笔记,主讲人是肖凯老师. 数据绘图 数据可视化的原则 为什么要做数据可视化? 为什么要做数据可视化?因为可视化后获取信息的效率高.为什么可视化后获取信息的 ...

  7. python学习(三):matplotlib学习

    前言:matplotlib是一个python的第三方库,里面的pyplot可以用来作图.下面来学习一下如何使用它的资源. 一.使用前 首先在python中使用任何第三方库时,都必须先将其引入.即: i ...

  8. Python:2D画图库matplotlib学习总结

    本文为学习笔记----总结!大部分为demo.一部分为学习中遇到的问题总结.包含怎么设置标签为中文等.matlab博大精深.须要用的时候再继续吧. Pyplot tutorial Demo地址为:点击 ...

  9. matplotlib学习之绘图基础

    matplotlib:http://www.cnblogs.com/jasonhaven/p/7609059.html 1.基本图形 散点图:显示两组数据的值,每个点的坐标位置由变量的值决定,头一组不 ...

随机推荐

  1. Oracle - 全角和半角

    全角和半角 只有字符,数字,标点符号有全角和半角的区别,中文没有 普通写一句英文(即不要输入法):I am 28 years old, do you love me?采用半角写:I am 28 yea ...

  2. ReportNG报表显示中文乱码和TestNG显示中文乱码实力解决办法

    最近在进军测试自动化框架学习阶段,但无意间总是会伴随小问题的困扰,比如中文乱码,而导致显示总是不舒服,个人觉得,就一定要解决,似乎有点点强迫症.所以遇到ReportNG报表显示中文乱码和TestNG显 ...

  3. 【Java并发核心四】Executor 与 ThreadPoolExecutor

    Executor 和 ThreadPoolExecutor 实现的是线程池,主要作用是支持高并发的访问处理. Executor 是一个接口,与线程池有关的大部分类都实现了此接口. ExecutorSe ...

  4. Ubuntu crontab 定时 python 详细

    Ubuntu系统,定时执行python脚本. 目的:每分钟执行一次timer_test.py timer_test.py    路径 /home/li/d/pythonwork/test/timer_ ...

  5. Git中的bash与CMD的区别

    Windows在使用git工具时,可以看到有两个命令输入窗: 1. Git CMD 2. Git Bash 两者的区别:Bash是基于CMD的,Bash在CMD的基础上新增了一些命令和功能,故建议使用 ...

  6. C#读取大数据量Excel

    var worksheet = workbook.Worksheets["工作表1"]; var maxN = worksheet.Range["A1"].En ...

  7. node的模块包装为promise写法

    1. const Promise = require('bluebird') const fs = Promise.promisifyAll(Promise.promisify(require('fs ...

  8. fastJson解析复杂的json字符串,经测试已经成功解析

    要解析的json数据格式为: HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { ResponseStatus: { }, ...

  9. Microsoft visual Studio2017 中番茄visual assist 破解

    百度查下,会发现VS(visual Studio)小番茄的破解有很多,但无外乎两种,第一种是输入注册码的,但是大多数[99%之上]都是无效的key值:还有一种是替换文件的.由于网络给的资料太多,也杂乱 ...

  10. C语——宏小结

    c语言关于宏的使用十分频繁.但是宏的使用有利也有弊,与此同时,它还是一个特别容易搞错的地方.正是基于此,它常常成为一些面试会侧重考察的地方. 所谓宏就是 #define 机制包括的一个规定,即允许把参 ...