文章目录

  • 一、点的绘制
  • 二、figure图形对象
  • 三、多元布局

一、点的绘制

1、绘制点需要提前设置点

# 设置点,在plot后面绘制点
xo = np.pi * 3/4  # 设置点横坐标位置为为3π/4
yo_cos = np.cos(xo)/2  # 两个纵坐标位置
yo_sin = np.sin(xo)

2、连点成线

  • 绘制:mp.scatter(水平坐标数组, 垂直坐标数组, marker=点的形状, s=点的大小, edgecolor=勾边色, facecolor=填充色, zorder=Z序)
  • Z序:画图的顺序,默认plot画点的0,线是1,数字越大,画得越晚,笔画就在处在越顶层
# 绘制点scatter
# 两个点:第一个点横坐标xo,纵坐标yo_cos;第二个点横坐标xo,纵坐标yo_sin
mp.scatter([xo, xo], [yo_cos, yo_sin], s=70, edgecolor='limegreen', facecolor='white', zorder=3 )
# 用plot画条虚线连接两点
mp.plot([xo, xo], [yo_cos, yo_sin], linestyle='--', linewidth=1, color='lightgreen')

3、添加注释
mp.annotate(
备注文本,
xy=目标位置,
xycoords=目标相对坐标系,
xytext=文本位置,
textcoords=文本相对坐标系,
fontsize=字体大小,
arrowprops=箭头属性
)

# 添加注释
mp.annotate(r'$\frac{1}{2}cos(\frac{3\pi}{4})=-\frac{\sqrt{2}}{4}$',  # 表示1/2cos(3π/4)xy=(xo, yo_cos), xycoords='data',  # 点的位置,点的相对坐标系xytext=(-90, -40), textcoords='offset points',  # 文本相对于点的偏移量,左-90,下-40;偏移坐标系fontsize=14,arrowprops=dict(arrowstyle='->', connectionstyle='arc3, rad=.2')# 箭头风格为->,连接文字为圆弧线,圆弧曲率半径为0.2
)

二、figure图形对象

1、创建图形对象

mp.figure(图形对象名, figsize=窗口大小, dpi=分辨率, facecolor=窗口颜色)

2、练习代码


import numpy as np
import matplotlib.pylab as mp# 参数定义
x = np.linspace(-np.pi, np.pi, 1000)
cos_y = np.cos(x)/2
sin_y = np.sin(x)# 创建第一个图形对象
mp.figure("FO 01", figsize=(6, 4), dpi=120, facecolor='lightgray')
mp.title("FO 01", fontsize=20)# 绘制横纵坐标
mp.xlabel('x', fontsize=12)
mp.ylabel('y', fontsize=12)# 设置刻度标签大小
mp.tick_params(labelsize=10)
# 放置网格线
mp.grid(linestyle=":")# 画图线
mp.plot(x, cos_y, label=r"$y=\frac{1}{2}cos(x)$")
mp.legend()  # 图例# 创建第二个图形对象
mp.figure("FO 02")
mp.title("FO 02", fontsize=20)
mp.plot(x, sin_y, label=r"$y=sin(x)$")
# 绘制横纵坐标
mp.xlabel('x', fontsize=12)
mp.ylabel('y', fontsize=12)# 设置刻度标签大小
mp.tick_params(labelsize=10)
# 放置网格线
mp.grid(linestyle=":")
mp.legend()  # 图例mp.show()

三、多元布局

1、缺省布局

  • 创建子图:mp.subplot(行数, 列数, 图号)
  • 练习代码:
import matplotlib.pylab as mp# 设置面板颜色
mp.figure(facecolor="lightgray")# 创建子图,用for循环连续创建几张
for i in range(2):for j in range(3):k = i*3 + j + 1mp.subplot(2, 3, k)  # 2行3列的子图,此处为第1张mp.xticks(())  # 刻度设为()空元组,就是无刻度mp.yticks(())mp.text(0.5,0.5, str(k), ha='center', size=36, alpha=0.5)mp.tight_layout()  # 紧凑布局
mp.show()  # 显示图

2、栅格布局

  • 引入模块:import matplotlib.gridspec as mg
  • 创建栅格:gs = mg.GridSpec(行数, 列数)
  • 放置子图:mp.subplot(gs[行, 列])
  • 练习代码:
import matplotlib.pylab as mp
import matplotlib.gridspec as mgmp.figure(facecolor="lightgray")  # 创建窗口
gs = mg.GridSpec(3, 3)  # 创建栅格布局器# 画第一张子图
mp.subplot(gs[0, :2])  # 一个子图占栅格的第0行的前两列# 取消坐标轴
mp.xticks(())
mp.yticks(())# 显示文字
mp.text(0.5, 0.5, '1', ha='center', va='center', size=36, alpha=0.5)# 第二张子图
mp.subplot(gs[1:, 0])  # 一个子图占栅格的第1行后的所有行,第0列
mp.xticks(())  # 取消坐标轴
mp.yticks(())
mp.text(0.5, 0.5, '2', ha='center', va='center', size=36, alpha=0.5)  # 显示文字# 第三张子图
mp.subplot(gs[2, 1:])  # 一个子图占栅格的第2行,第1列后的所有列
mp.xticks(())  # 取消坐标轴
mp.yticks(())
mp.text(0.5, 0.5, '3', ha='center', va='center', size=36, alpha=0.5)  # 显示文字# 第四张子图
mp.subplot(gs[:2, 2])  # 一个子图占栅格的第2行前的所有行,第2列
mp.xticks(())  # 取消坐标轴
mp.yticks(())
mp.text(0.5, 0.5, '4', ha='center', va='center', size=36, alpha=0.5)  # 显示文字# 第五张子图
mp.subplot(gs[1, 1])  # 一个子图占栅格的第1行,第1列
mp.xticks(())  # 取消坐标轴
mp.yticks(())
mp.text(0.5, 0.5, '5', ha='center', va='center', size=36, alpha=0.5)  # 显示文字# 显示图表
mp.show()

3、自由布局

  • mp.axes([左下角水平左边, 左下角垂直坐标, 宽度, 高度]) # 此处的尺寸参数都是按比例来的
  • 练习代码:
import matplotlib.pylab as mpmp.figure(facecolor="lightgray")  # 创建窗口# 创建一个自由布局的图
mp.axes([0.03, 0.038, 0.94, 0.924])  # 计算:0.94=1-0.03*2;0.924=1-0.038*2
mp.xticks(())  # 取消坐标轴
mp.yticks(())
mp.text(0.5, 0.5, '1', ha='center', va='center', size=36, alpha=0.5)  # 显示文字# 创建第2个自由布局的图
mp.axes([0.60, 0.07, 0.35, 0.5])  # 计算:0.94=1-0.03*2;0.924=1-0.038*2
mp.xticks(())  # 取消坐标轴
mp.yticks(())
mp.text(0.5, 0.5, '2', ha='center', va='center', size=36, alpha=0.5)  # 显示文字# 显示图表
mp.show()

Python之数据分析(figure图形对象、Numpy连线特殊点、图像多元布局)相关推荐

  1. Matplotlib figure图形对象

    Matplotlib figure图形对象 通过前面的学习,我们知道matplotlib.pyplot模块能够快速地生成图像,但如果使用面向对象的编程思想,我们就可以更好地控制和自定义图像. 在 Ma ...

  2. numpy将所有数据变为0和1_《利用python进行数据分析》1.0——Numpy库

    目录: Tab 键自动完成 %run命令 "Ctri-C" 中断正在执行的代码 忘记输入和输出文本怎么办 创建数组 zero 和ones arange(),生成一定长度的数量 dt ...

  3. python泰坦尼克号数据分析_Python数据分析|泰坦尼克逻辑回归

    Python数据分析学习笔记,今天分享下利用Python进行逻辑回归,预测泰坦尼克号乘客生存情况. #导入2个Python常用数据分析的库import numpy as npimport pandas ...

  4. python图像识别马路_使用Python和OpenCV在道路上找到车道线

    识别道路上的车道是所有司机的共同任务,以确保车辆在驾驶时处于车道限制之内,并减少因越过车道而与其他车辆发生碰撞的机会. 对自动驾驶汽车来说,这同样也是一项关键任务.事实证明,使用计算机视觉技术识别道路 ...

  5. Python数据分析(matplotlib、numpy、pandas)

    Python数据分析 1.matplotlib 1.1 什么是matplotlib 能将数据进行可视化,更直观的呈现 使数据更加客观,更有说服力 matplotlib:最流行的Python底层绘图库, ...

  6. python数据分析(五)——numpy+matplotlib实例

    系列文章: python数据分析(一)--numpy数组的创建 python数据分析(二)--numpy数组的计算 python数据分析(三)--numpy读取本地数据和索引 python数据分析(四 ...

  7. 《Python数据分析基础教程:NumPy学习指南:第二版》读书笔记

    内容 主要介绍了NumPy库中的函数. 组成方式 用非常零散的知识点串联成章节. 内容摘要 极简地展示了章节中所运用的函数. 第一章 arrange函数创建NumPy数组. 第二章 NumPy特性 在 ...

  8. 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一、pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主

    利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目 ...

  9. python输入数组并计算_利用Python进行数据分析——Numpy基础:数组和矢量计算

    利用Python进行数据分析--Numpy基础:数组和矢量计算 ndarry,一个具有矢量运算和复杂广播能力快速节省空间的多维数组 对整组数据进行快速运算的标准数学函数,无需for-loop 用于读写 ...

最新文章

  1. pytorch nn.LSTM()参数详解
  2. R语言编写自定义函数使用Wilcoxon符号秩检验(Wilcoxon signed rank)实现多分组非参数成对检验(pairwise)、并使用p.adjust函数调整概率值
  3. 2012-2013年下学期计划
  4. JNI线程、Linux常用命令、权限、防火墙配置
  5. 长亭技术专栏 安全攻防技术分享
  6. STL源码剖析——P142关于list::sort函数
  7. sql server数据集中取第一条记录及保留几位小数的两种做法及前n行写法
  8. windows 打印机 print spooler 无法启动 错误1068 的问题
  9. Filter实现敏感词汇过滤
  10. ASAP光学设计软件
  11. 对账、结账、错账更正方法、划线更正法、红字更正法、补充登记法
  12. 【蓝桥杯2014C/C++B组省赛真题】——史丰收速算
  13. linux安装软件时/usr/lib/python2.7/site-packages/urlgrabber/grabber.py文件异常
  14. excel 分组计数
  15. MarkDown Pad2的Windows秘钥
  16. bili弹幕姬_b站弹幕姬|b站弹幕姬下载_v1.0.1.126官方版_9号软件下载
  17. 记一次简单的清理挖矿程序过程-kdevtmpfsi
  18. 集成电路:芯片时代的到来
  19. 二十一世纪大学英语读写教程(第三册)学习笔记(原文)——4 - College Pressures(大学生的压力)
  20. 伦敦大学学院计算机科学世界排名,伦敦大学学院世界排名及专业排名汇总(QS世界大学排名版)...

热门文章

  1. 噪声产生原因_皮带输送机异常噪声的5种情况、减速机断轴的原因和解决方法...
  2. 用MVC来实现javaScript的时间效果
  3. polkit启动失败_linux某服务启动失败,提示Authorization not available. Check if polkit...问题解决...
  4. 开发接口文档_产品经理必懂的接口文档撰写方式
  5. c4d计算机丢失api-ms,SVsSccManager Interface
  6. 使用计算机系统管理商品存货,ERP管理系统中编码的意义
  7. java 多态性 变量_java – 与实例变量的多态性
  8. date用法linux,date用法心得
  9. mysql5.6解压版 1067_MySQL5.6解压版服务无法启动—系统错误1067
  10. html5白话解释,HTML5这个词到底是什么意思?