3,Python常用库之三:Matplotlib
一、Matplotlib基础知识
Matplotlib中的基本图表包括的元素
- x轴和y轴 axis
水平和垂直的轴线
- x轴和y轴刻度 tick
刻度标示坐标轴的分隔,包括最小刻度和最大刻度
- x轴和y轴刻度标签 tick label
表示特定坐标轴的值
- 绘图区域(坐标系) axes
实际绘图的区域
- 坐标系标题 title
实际绘图的区域
- 轴标签 xlabel ylabel
实际绘图的区域
导入模块
import seaborn as sb
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pandas import Series,DataFrame
使用matplotlib.pyplot获取一个numpy数组,数据来源于一张图片
img_arr = plt.imread('./bobby.jpg')
plt.imshow(img_arr) # 显示照片
plt.imshow(img_arr - 66) # 改变照片颜色
plt.imshow(img_arr[:,::-1,:]) # 将照片的列反转
包含单条曲线的图
x=[,,,,]
y=[,,,,]
plt.plot(x,y)

绘制抛物线
x = np.linspace(-np.pi,np.pi,num=)
y = x**
plt.plot(x,y)

绘制正弦曲线图
x
y = np.sin(x)
plt.plot(x,y)

包含多个曲线


将多个曲线图绘制在一个table区域中:对象形式创建表图
- a=plt.subplot(row,col,loc) 创建曲线图
- a.plot(x,y) 绘制曲线图
ax1 = plt.subplot()
ax1.plot(x,y) ax2 = plt.subplot(,,)
ax2.plot(x,y) ax3 = plt.subplot(,,)
ax3.plot(x,y) ax4 = plt.subplot(,,)
ax4.plot(x,y)

网格线 plt.gride(XXX)
参数:
- axis
- color:支持十六进制颜色
- linestyle: -- -. :
- alpha

绘制一个正弦曲线图,并设置网格

坐标轴界限
axis方法:设置x,y轴刻度值的范围
plt.axis([xmin,xmax,ymin,ymax])
plt.axis('off') 关闭坐标轴

设置画布比例:plt.figure(figsize=(a,b)) a:x刻度比例 b:y刻度比例 (2:1)表示x刻度显示为y刻度显示的2倍

坐标轴标签
- s 标签内容
- color 标签颜色
- fontsize 字体大小
- rotation 旋转角度
- plt的xlabel方法和ylabel方法 title方法

图例
legend方法
两种传参方法:
- 分别在plot函数中增加label参数,再调用plt.legend()方法显示
- 直接在legend方法中传入字符串列表

legend的参数
- loc参数
- loc参数用于设置图例标签的位置,一般在legend函数内
- matplotlib已经预定义好几种数字表示的位置

保存图片
使用figure对象的savefig函数来保存图片
fig = plt.figure()---必须放置在绘图操作之前
figure.savefig的参数选项
- filename
含有文件路径的字符串或Python的文件型对象。图像格式由文件扩展名推断得出,例如,.pdf推断出PDF,.png推断出PNG (“png”、“pdf”、“svg”、“ps”、“eps”……) - dpi
图像分辨率(每英寸点数),默认为100 - facecolor ,打开保存图片查看 图像的背景色,默认为“w”(白色)

设置plot的风格和样式
plot语句中支持除X,Y以外的参数,以字符串形式存在,来控制颜色、线型、点型等要素,语法形式为:
plt.plot(X, Y, 'format', ...)
颜色值的方式
- 别名
- color='r'
- 合法的HTML颜色名
- color = 'red'
- HTML十六进制字符串
- color = '#eeefff'
- 归一化到[0, 1]的RGB元组
- color = (0.3, 0.3, 0.4)
线型
参数linestyle或ls


点型
- marker 设置点形
- markersize 设置点形大小





# 绘制线 plt.plot(x1,y1,x2,y2)
# 网格线 plt.grid(True) axes.grid(color,ls,lw,alpha)
# 获取坐标系 plt.subplot(n1,n2,n3)
# 坐标轴标签 plt.xlabel() plt.ylabel()
# 坐标系标题 plt.title()
# 图例 plt.legend([names],ncol=,loc=) plt.plot(label='name')
# 线风格 -- -. : None step
# 图片保存 figure.savefig()
# 点的设置 marker markersize markerfacecolor markeredgecolor\width
# 坐标轴刻度 plt.xticks(刻度列表,刻度标签列表) plt.yticks()
# axes.set_xticks(刻度列表) axes.set_xticklabels(刻度标签列表)
三、2D图形
直方图
- 是一个特殊的柱状图,又叫做密度图。
【直方图的参数只有一个x!!!不像条形图需要传入x,y】
plt.hist()的参数
- bins
直方图的柱数,可选项,默认为10 - color
指定直方图的颜色。可以是单一颜色值或颜色的序列。如果指定了多个数据集合,例如DataFrame对象,颜色序列将会设置为相同的顺序。如果未指定,将会使用一个默认的线条颜色 - orientation
通过设置orientation为horizontal创建水平直方图。默认值为vertical
data = [,,,,,,]
plt.hist(data,bins=)

条形图:plt.bar()
- 参数:第一个参数是索引。第二个参数是数据值。第三个参数是条形的宽度
-【条形图有两个参数x,y】
- width 纵向设置条形宽度
- height 横向设置条形高度
bar()、barh()
num = [,,,,]
count = [,,,,]
plt.barh(num,count)

饼图
【饼图也只有一个参数x】
pie()
饼图适合展示各部分占总体的比例,条形图适合比较各部分的大小
饼图阴影、分裂等属性设置 #labels参数设置每一块的标签; #labeldistance参数设置标签距离圆心的距离(比例值) #autopct参数设置比例值小数保留位(%.3f%%); #pctdistance参数设置比例值文字距离圆心的距离 #explode参数设置每一块顶点距圆心的长度(比例值,列表); #colors参数设置每一块的颜色(列表); #shadow参数为布尔值,设置是否绘制阴影 #startangle参数设置饼图起始角度

arr=[,,,]
plt.pie(arr,labels=['a','b','c','d']) #labeldistance参数设置标签距离圆心的距离(比例值)
arr=[,,,]
plt.pie(arr,labels=['a','b','c','d'],labeldistance=0.3)

#autopct参数设置比例值小数保留位(%.3f%%);
arr=[,,,]
plt.pie(arr,labels=['a','b','c','d'],labeldistance=0.3,autopct='%.6f%%')

##explode参数设置每一块顶点距圆心的长度(比例值,列表);
arr=[,,,]
plt.pie(arr,labels=['a','b','c','d'],labeldistance=0.3,shadow=True,explode=[0.2,0.3,0.2,0.4])

#startangle参数设置饼图起始角度
arr=[,,,]
plt.pie(arr,labels=['a','b','c','d'],startangle=)

散点图:因变量随自变量而变化的大致趋势¶
【散点图需要两个参数x,y,但此时x不是表示x轴的刻度,而是每个点的横坐标!】
scatter()
x = np.random.randint(,,size=(,))
y = np.random.randint(,,size=(,))
plt.scatter(x,y,marker='d',c="rbgy") 设置不同的散点颜色


绘制条形图
countplot(data:数据集, x:x坐标轴, color:条形图颜色, order:排序)
color_palette():返回一个RGB元组列表
test = pd.read_csv('pokemon.csv')
print(test.shape)
print(test.tail(10))
# value_counts函数统计各序列频率,并降序
generation_order = test['generation_id'].value_counts().index
print(generation_order)
# color_palette 返回一个RGB元组列表
base_color = sb.color_palette()[0]
sb.countplot(data=test, x='generation_id', color=base_color, order=generation_order)
plt.show()
xticks(rotation:旋转度数):更改绘制x轴标签方向(与水平方向的逆时针夹角度数)
yticks(rotation:旋转度数):更改绘制y轴标签方向(与垂直方向的逆时针夹角度数)
plt.xticks(rotation=90)
plt.yticks(rotation=45)
3,Python常用库之三:Matplotlib的更多相关文章
- Python常用库之三:Matplotlib
导入模块 import matplotlib.pyplot as plt import seaborn as sb 绘制条形图 countplot(data:数据集, x:x坐标轴, color:条形 ...
- python 常用库整理
python 常用库整理 GUI 图形界面 Tkinter: Tkinter wxPython:wxPython pyGTK:PyGTK pyQt:pyQt WEB框架 django:django w ...
- python常用库安装网址
python常用库安装网址如下: http://pypi.python.org/pypi
- windows下python常用库的安装
windows下python常用库的安装,前提安装了annaconda 的python开发环境.只要已经安装了anaconda,要安装别的库就很简单了.只要使用pip即可,正常安装好python,都会 ...
- Python常用库整理
Python常用库整理 Python中到底有哪些库会让程序员爱不释手?以至于一次上瘾,造成永久性伤害(这句话好像在哪里见过),今天我们就来整理一番这样的库,欢迎各位在评论区或者私信我添加或者修改相关库 ...
- python常用库
本文由 伯乐在线 - 艾凌风 翻译,Namco 校稿.未经许可,禁止转载!英文出处:vinta.欢迎加入翻译组. Awesome Python ,这又是一个 Awesome XXX 系列的资源整理,由 ...
- Python常用库大全
环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex – 可以在虚拟环境中执行命令. v ...
- Python常用库大全,看看有没有你需要的
作者:史豹链接:https://www.zhihu.com/question/20501628/answer/223340838来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- python常用库(转)
转自http://www.west999.com/info/html/wangluobiancheng/qita/20180729/4410114.html Python常用的库简单介绍一下 fuzz ...
随机推荐
- 解决 MVC4 Code First 数据迁移 数据库发生更改导致调试失败解决方法(二)
文章转载自:http://www.cnblogs.com/amoniyibeizi/p/4486617.html 前几天学MVC过程中,遇到更改Model类以后,运行程序就会出现数据已更改的问题导致调 ...
- u-boot分析(六)----时钟初始化
u-boot分析(六) 上篇博文我们按照210的启动流程,分析到了关闭看门狗,今天我们继续按照u-boot的启动流程进行分析,今天我们会主要分析时钟的初始化. 今天我们会用到的文档: 1. ...
- [原创]Debian9 安装配置MariaDB
序言 这次玩次狠得.除了编译器使用yum安装,其他全部手动编译.哼~ 看似就Nginx.PHP.MySql三个东东,但是它们太尼玛依赖别人了. 没办法,想用它们就得老老实实给它们提供想要的东西. 首先 ...
- Tomcat 中部署 web 应用 ---- Dubbo 服务消费者 Web 应用 war 包的部署
使用Maven构建Dubbo服务的可执行jar包 Dubbo服务的运行方式: 1.使用Servlet容器运行(Tomcat.Jetty等)----不可取 缺点:增加复杂性(端口.管理) 浪费资源(内存 ...
- 使用fn_dblog函数查看事务日志和恢复数据
基本语法 SqlServer中有一个未在文档中公开的函数sys.fn_dblog,提供查询当前数据库事务日志的功能.通过这个函数,可以简单了解下数据库事务日志的机制 使用方法如下: select * ...
- 中兴ZXR10 GER4核心路由器配置案例
Connecting to 192.168.100.2:23...Connection established.To escape to local shell, press 'Ctrl+Alt+]' ...
- CEFSharp在anycpu下的编译
记录一篇博文,将CEFSharp在AnyCpu下使用: 地址:http://pengxiaobo123.blog.163.com/blog/static/20471515420172164593726 ...
- python 字符串部分总结
字符串 对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符 >>> ord('A') 65 >>> ord ...
- APP专项测试使用到的工具
最近在读<大话APP测试>,我也就是把需要使用的测试点做一个总结,目前是使用的工具进行的整理,后期慢慢把工具使用案例贴出来
- 某寺庙,有小和尚、老和尚若干。有一水缸,由小和尚用水桶从井中提水入缸,老和尚用水桶从缸里取水饮用。水缸可容10桶水,水取自同一井中。水井径窄,每次只能容一个水桶取水。水桶总数为3个。每次入、取缸水仅为1桶,且不可以同时进行。试用P、V操作给出小和尚、老和尚动作的算法描述。
寺庙和尚打水 设信号量mutex_gang, mutex_jing, gang_empty, gang_full, count分别表示使用缸互斥, 使用井互斥, 缸空, 缸满, 水桶总个数 semap ...