Python matplotlib 学习——建立画布和坐标系
#导入包
import matplotlib.pyplot as plt
#让图表在jupyter展示出来
%matplotlib inline
#解决中文乱码问题
plt.rcParams["font.sans-serif"]='SimHei'
#解决负号无法显示
plt.rcParams["axes.unicode_minus"] = False
#将图表设置成矢量图
%config InlineBackend.figure_format = 'svg'
#建立画布,figsize设置画布大小
fig = plt.figure(figsize=(8,6))
#利用add_subplot函数建立坐标系时需要先有画布,再在画布上绘制坐标系。
#在画布fig上绘制1×1个坐标系,并且把坐标系赋值给变量ax1,代码如下所示。
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
ax4 = fig.add_subplot(2,2,4)
用plt.subplot2grid函数建立坐标系时不需要先建立画布,只需要导
入plt库即可。导入plt库以后可以直接调用plt库的subplot2grid方法建立
坐标系,示例如下:
plt.subplot2grid((2,2),(0,0))
上面代码表示将图表的整个区域分成2行2列,且在(0,0)位置绘图,
坐标系如下图所示。
用这种方式建立坐标系时,具体的绘图代码需要跟在建立坐标系的
语句后面。将图表的整个区域分成2行2列,并在(0,0)位置做折线图,在
(0,1)位置做柱形图,具体实现如下所示。
import numpy as np
x = np.arange(6)
y = np.arange(6)
plt.subplot2grid((2,2),(0,0))
plt.plot(x,y)
plt.subplot2grid((2,2),(0,1))
plt.bar(x,y)
与plt.subplot2grid函数类似,plt.subplot也是plt库的一个函数,也表
示将区域分成几份,并指明在哪一块区域上绘图,两者的区别只是表现
形式不一样。
plt.subplot(2,2,1)
上面的代码表示将图表的整个区域分成2行2列,且在第1个坐标系
里面绘图,运行结果如下图所示。
用这种方式建立坐标系时同样需要将具体的绘图代码跟在建立坐标
系语句后面。将图表的整个区域分成2行2列,并在第1个坐标系上做折
线图,在第4个坐标系上做柱形图,具体实现如下所示。
plt.subplot(2,2,1)
plt.plot(x,y)
plt.subplot(2,2,4)
plt.bar(x,y)
plt.subplots函数也是plt库的一个函数,它与subplot2grid函数和
subplot函数的不同之处是,subplot2grid函数和subplot函数每次只返回一
个坐标系,而subplots函数一次可以返回多个坐标系。
fig,axes = plt.subplots(2,2)
上面代码表示将图表的整个区域分成2行2列,并将4个坐标系全部
返回,运行结果如下图所示。
你想在哪个坐标系里面绘图通过axes[x,y]指明即可。现在我们在上
例的图表中绘图,首先在[0,0]坐标系中绘制折线图,然后在[1,1]坐标系
中绘制折线图,具体实现如下所示。
axes[0,0].plot(x,y)
axes[1,1].bar(x,y)
fig
几种创建坐标系方法的区别
第一种创建坐标系的方法 add_subplot 属于对象式编程,所有的操
作都是针对某个对象进行的,比如先建立一块画布,然后在这块画布上
建立坐标系,进而在坐标系上绘图。而后三种建立坐标系的方法属于函
数式编程,都是直接调用 plt 库里面的某个函数或者方法达到创建坐标
系的目的。
对象式编程的代码比较烦琐,但是便于理解;函数式编程虽然代码
简洁,但是不利于新人掌握整体的绘图原理,所以建议大家刚开始的时
候多使用对象式编程,当大家对整个绘图原理很熟悉时,再尝试使用函
数式编程。
这两种编程方式不仅体现在创建坐标系中,在接下来的一些操作中
也会有涉及,有的时候两者会交叉使用,也就是在一段代码中既有函数
式编程,也有对象式编程。
本文摘自《对比Excel,轻松学习Python数据分析》张俊红 著,如有侵权,请告知,立删。
Python matplotlib 学习——建立画布和坐标系的更多相关文章
- 【划重点】Python matplotlib绘图建立画布和坐标系
一.建立画布 import matplotlib.pyplot as plt import numpy as np x=np.arange(8) y=np.arange(8) print(x,y) # ...
- 小白学Python——Matplotlib 学习(2):pyplot 画图
matplotlib.pyplot是一组命令样式函数,使matplotlib像MATLAB一样工作.每个pyplot函数都会对图形进行一些更改:例如,创建图形,在图形中创建绘图区域,在绘图区域中绘制一 ...
- 小白学Python——Matplotlib 学习(1)
众所周知,通过数据绘图,我们可以将枯燥的数字转换成容易被人们接受的图表,从而让人留下更加深刻的印象.而大多数编程语言都有自己的绘图工具,matplotlib就是基于Python的绘图工具包,使用它我们 ...
- 小白学Python——Matplotlib 学习(3) 函数图形
import matplotlib.pyplot as plt import numpy as np x = np.linspace(-1,1,50) y = 2*x + 1 plt.figure() ...
- Matplotlib学习---matplotlib的一些基本用法
Matplotlib有两种接口,一种是matlab风格接口,一种是面向对象接口.在这里,统一使用面向对象接口.因为面向对象接口可以适应更复杂的场景,在多图之间进行切换将变得非常容易. 首先导入matp ...
- Python - matplotlib 数据可视化
在许多实际问题中,经常要对给出的数据进行可视化,便于观察. 今天专门针对Python中的数据可视化模块--matplotlib这块内容系统的整理,方便查找使用. 本文来自于对<利用python进 ...
- Python matplotlib绘图设置图例
一.语法简介 plt.legend(loc=2,edgecolor='red',facecolor='green',shadow='True',fontsize=10) #edgecolor 图例边框 ...
- Python matplotlib绘图设置坐标轴的标题
一.语法简介 plt.xlabel("销售月份",fontsize=16,color='red',fontweight='bold',loc='center',background ...
- 【划重点】Python matplotlib绘图设置坐标轴的刻度
一.语法简介 plt.xticks(ticks,labels,rotation=30,fontsize=10,color='red',fontweight='bold',backgroundcolor ...
- python matplotlib plot 数据中的中文无法正常显示的解决办法
转发自:http://blog.csdn.net/laoyaotask/article/details/22117745?utm_source=tuicool python matplotlib pl ...
随机推荐
- 3.使用nexus3配置maven私有仓库
配置之前,我们先来看看系统默认创建的都有哪些 其中圈起来的都是系统原有的,用不到,就全删掉,重新创建. 1,创建blob存储 2,创建hosted类型的maven 点击 Repository下面的 R ...
- 利用 Nginx 反向代理搭建本地 yum 服务器
在政府,医院等单位有网络安全要求,对内外网进行物理隔离,然而内网主机无法访问互联网下载安装包,通过Nginx 反向代理搭建本地yum服务器实现内网主机安装包下载. Centos 8.2 部署 Ngin ...
- 4.Gitlab CI 与 Kubernetes 的结合
参考网址:https://www.qikqiak.com/post/gitlab-ci-k8s-cluster-feature/
- Bootstrap5 如何创建多媒体对象
一.在Bootstra5中使用媒体对象 Bootstrap 媒体对象在版本 5 中已经停止支持了.但是,我们仍然可以使用 flex 和 margin 创建包含左对齐或右对齐媒体对象(如图像或视频)以及 ...
- display:block 和display:inline-block的区别和用法
1).块状元素:(div,p,form,ul,ol,li) ,独占一行,默认情况width为100% 2).行内块状元素:(span,img,a),不会独占一行,相邻的元素一直排在同一行,排满了才会换 ...
- 关于Jenkins-Item-Office 365 Connector-下的多选框的参数定义
在Jenkins的Item中Office 365 Connector下,我们有时会使用到,多选框(复选框),目的是可选择多个多个条目赋值给指定的变量 然后在Build Triggers中可以进行引用, ...
- 洛谷P2880 [USACO07JAN] Balanced Lineup G(树状数组/线段树)
维护区间最值的模板题. 1.树状数组 1 #include<bits/stdc++.h> 2 //树状数组做法 3 using namespace std; 4 const int N=5 ...
- 关于从Ecplise导入项目到MyEclipse会出现冲突的原因。
昨天,从网上下了一个Eclipse的小项目导入到MyEclipse中,出现了许多错误. 原因如下. JDK的编译版本和JRE的运行版本不一致导致了这个问题. 在MyEclipse中,对项目进行Buil ...
- 01-MySQL8主从详解
主从原理 master服务器将数据的改变记录二进制binlog日志,当master上的数据发生改变时,则将其改变写入二进制日志中:slave服务器会在一定时间间隔内对master二进制日志进行探测其是 ...
- 记一次sql文件导入错误
乘着暑假的时候想学习一下SpringCloud的相关技术,但在跟着教程时,导入sql文件的时候出现了问题. 百度搜索发现在运行sql文件前需要提前创建数据库. 但创建数据库之后依然存在问题导致运行sq ...