学习笔记,这个笔记以例子为主。
开发工具:Spyder


文章目录

  • matplotlib概述
  • matplotlib基本绘图
    • 先来几个案例简单了解一下matplotlib
      • 案例1(绘制一条余弦曲线)
      • 案例2(绘制水平线与垂直线)
      • 案例3(绘制多条垂直/水平线)
    • 线型、线宽和颜色
    • 设置坐标轴范围
    • 设置坐标刻度
      • 举个例子(修改坐标轴刻度)
      • 举个例子2(Latex排版语法字符串)
    • 设置坐标轴
    • 图例
    • 特殊点
    • 备注

matplotlib概述

matplotlib是python的一个绘图库。使用它可以很方便的绘制质量级别高的图形。

matplotlib基本绘图

先来几个案例简单了解一下matplotlib

案例1(绘制一条余弦曲线)

  • 语法
import numpy as np
import matplotlib.pyplot as mp# xarray: <序列> 水平坐标序列
# yarray: <序列> 垂直坐标序列
mp.plot(xarray, yarray)
#显示图表
mp.show()

代码:

import numpy as np
import matplotlib.pyplot as mp#生成一条正弦曲线
x = np.linspace(-np.pi, np.pi, 1000)
print(x.shape)
sin_x = np.sin(x)
#绘制
mp.plot(x, sin_x)
mp.show()

图像:

案例2(绘制水平线与垂直线)

  • 语法
import numpy as np
import matplotlib.pyplot as mp# vertical 绘制垂直线
mp.vlines(vval, ymin, ymax, ...)
#vval为x坐标值,ymin和ymax为垂直线的最小最大值# horizotal 绘制水平线
mp.hlines(xval, xmin, xmax, ...)
#xval为y坐标值, xmin和xmax为水平线的最小最大值
#显示图表
mp.show()

代码:

import numpy as np
import matplotlib.pyplot as mpxs = np.arange(6)
ys = np.array([20, 60, 40, 50, 10, 20])
mp.plot(xs, ys)mp.vlines(3, 20, 50)
mp.hlines(30, 1, 4)
mp.show()

图像:

案例3(绘制多条垂直/水平线)

代码:

import numpy as np
import matplotlib.pyplot as mpxs = np.arange(6)
ys = np.array([20, 60, 40, 50, 10, 20])
mp.plot(xs, ys)mp.vlines([3, 5, 7], 20, 50)
mp.hlines(30, 1, 4)
mp.show()

图像:

线型、线宽和颜色

  • 语法
mp.plot(xarray, yarray, linestyle='', linewidth=1, color='', alpha=0.5)

参数表:

参数 含义 参数值
linestyle 线型 "-" "--" ":" ".-"
linewidth 线宽 数字
color 颜色 颜色的英文单词 / 常见颜色英文单词首字母 / #495434 / (1,1,1) / (1,1,1,1)
alpha 透明度 浮点数值

颜色表:

  • 举个例子

代码:

import numpy as np
import matplotlib.pyplot as mpx = np.linspace(-np.pi, np.pi, 1000)
sin_x = np.sin(x)
cos_x = np.cos(x)mp.plot(x, sin_x, linestyle=':', alpha = 0.8,linewidth= 2, color='dodgerblue')mp.plot(x, cos_x, linestyle='-.', alpha = 0.8,linewidth= 2, color='orangered')mp.show()

图像:

设置坐标轴范围

  • 语法
mp.xlim(x_limt_min, x_limit_max)
#x_limt_min:    <float> x轴范围最小值
#x_limit_max:   <float> x轴范围最大值
mp.ylim(y_limt_min, y_limit_max)
#y_limt_min:    <float> y轴范围最小值
#y_limit_max:   <float> y轴范围最大值
  • 举个例子(设置坐标轴范围)

代码:

import numpy as np
import matplotlib.pyplot as mpx = np.linspace(-np.pi, np.pi, 1000)
sin_x = np.sin(x)
cos_x = np.cos(x)mp.plot(x, sin_x, linestyle=':', alpha = 0.8,linewidth= 2, color='dodgerblue')mp.plot(x, cos_x, linestyle='-.', alpha = 0.8,linewidth= 2, color='orangered')mp.xlim(0, np.pi)
mp.ylim(0, 1)mp.show()

图像:

设置坐标刻度

  • 语法
mp.xticks(x_val_list, x_text_list)
#x_val_list:    x轴刻度值序列
#x_text_list:   x轴刻度标签文本序列 [可选]
mp.yticks(y_val_list, y_text_list)
#y_val_list:    y轴刻度值序列
#y_text_list:   y轴刻度标签文本序列 [可选]

举个例子(修改坐标轴刻度)

代码:

import numpy as np
import matplotlib.pyplot as mpx = np.linspace(-np.pi, np.pi, 1000)
sin_x = np.sin(x)
cos_x = np.cos(x)mp.plot(x, sin_x, linestyle=':', alpha = 0.8,linewidth= 2, color='dodgerblue')mp.plot(x, cos_x, linestyle='-.', alpha = 0.8,linewidth= 2, color='orangered')mp.xticks([-np.pi, 0, np.pi],['-π', '0', 'π'])mp.show()

图像:

举个例子2(Latex排版语法字符串)

代码:

import numpy as np
import matplotlib.pyplot as mpx = np.linspace(-np.pi, np.pi, 1000)
sin_x = np.sin(x)
cos_x = np.cos(x)mp.plot(x, sin_x, linestyle=':', alpha = 0.8,linewidth= 2, color='dodgerblue')mp.plot(x, cos_x, linestyle='-.', alpha = 0.8,linewidth= 2, color='orangered')mp.xticks([-np.pi, -np.pi / 2, 0, np.pi / 2, np.pi],[r'$-\pi$', r'$-\frac{\pi}{2}$', '0',r'$\frac{\pi}{2}$', r'$\pi$'])
mp.yticks([-1.0, -0.5, 0, 0.5, 1])mp.show()

图像:

设置坐标轴

  • 语法
# 获取当前坐标轴字典,{'left':左轴,'right':右轴,'bottom':下轴,'top':上轴 }
ax = mp.gca()# 获取其中某个坐标轴
axis = ax.spines['坐标轴名']
#坐标轴名:left/right/bottom/top# 设置坐标轴的位置。 该方法需要传入2个元素的元组作为参数
axis.set_position((type, val))
# type: <str> 移动坐标轴的参照类型  一般设置为'data' (以数据的值作为移动参照值)
# val:  参照值# 设置坐标轴的颜色
axis.set_color(color)
# color: <str> 颜色值字符串
#若需要隐藏掉坐标轴,则可设置为color参数为'none'
  • 举个例子

代码:

import numpy as np
import matplotlib.pyplot as mpx = np.linspace(-np.pi, np.pi, 1000)
sin_x = np.sin(x)
cos_x = np.cos(x)mp.plot(x, sin_x, linestyle=':', alpha = 0.8,linewidth= 2, color='dodgerblue')mp.plot(x, cos_x, linestyle='-.', alpha = 0.8,linewidth= 2, color='orangered')# 设置坐标轴
ax = mp.gca()
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
ax.spines['left'].set_position(('data', 0))
ax.spines['bottom'].set_position(('data', 0))mp.show()

图像:

图例

  • 语法
mp.legend(loc = 0)

位置(loc)标识:

  • 举个例子

代码:

import numpy as np
import matplotlib.pyplot as mpx = np.linspace(-np.pi, np.pi, 1000)
sin_x = np.sin(x)
cos_x = np.cos(x)mp.plot(x, sin_x, linestyle=':', alpha = 0.8,linewidth= 2, color='dodgerblue', label = r'sin(x)')mp.plot(x, cos_x, linestyle='-.', alpha = 0.8,linewidth= 2, color='orangered',label = r'cos(x)')mp.legend(loc = 2)mp.show()

图像:

特殊点

  • 语法
# xarray: <序列> 所有需要标注点的水平坐标组成的序列
# yarray: <序列> 所有需要标注点的垂直坐标组成的序列
mp.scatter(xarray, yarray, marker='',        #点型 ~ matplotlib.markerss='',            #大小edgecolor='',     #边缘色facecolor='',    #填充色zorder=3)          #绘制图层编号 (编号越大,图层越靠上,就会把图层较小的图层覆盖掉)

点型图:

  • 举个例子

代码(只贴绘制特殊点的代码):

# 绘制特殊点
px = [3 / 4 * np.pi, 3 / 4 * np.pi]
py = [np.sin(px[0]), np.cos(px[1])]
mp.scatter(px, py, marker='o', color='red',s=70, label='Points', zorder=3)

图像:

备注

  • 语法
# 在图表中为某个点添加备注。包含备注文本,备注箭头等图像的设置。
mp.annotate(r'$\frac{\pi}{2}$',           #备注中显示的文本内容xycoords='data',          #备注目标点所使用的坐标系(data表示数据坐标系)xy=(x, y),                 #备注目标点的坐标textcoords='offset points', #备注文本所使用的坐标系(offset points表示参照点的偏移坐标系)xytext=(x, y),             #备注文本的坐标fontsize=14,               #备注文本的字体大小arrowprops=dict()            #使用字典定义文本指向目标点的箭头样式
)

arrowprops参数使用字典定义指向目标点的箭头样式:

#arrowprops字典参数的常用key
arrowprops=dict(arrowstyle='',      #定义箭头样式connectionstyle=''    #定义连接线的样式
)

箭头样式(arrowstyle)字符串如下:

'-' None
'->' head_length=0.4,head_width=0.2
'-[' widthB=1.0,lengthB=0.2,angleB=None
'|-|' widthA=1.0,widthB=1.0
'-|>' head_length=0.4,head_width=0.2
'<-' head_length=0.4,head_width=0.2
'<->' head_length=0.4,head_width=0.2
'<|-' head_length=0.4,head_width=0.2
'<|-|>' head_length=0.4,head_width=0.2
'fancy' head_length=0.4,head_width=0.4,tail_width=0.4
'simple' head_length=0.5,head_width=0.5,tail_width=0.2
'wedge' tail_width=0.3,shrink_factor=0.5

连接线样式(connectionstyle)字符串如下:

‘angle’ angleA=90,angleB=0,rad=0.0
‘angle3’ angleA=90,angleB=0`
‘arc’ angleA=0,angleB=0,armA=None,armB=None,rad=0.0
‘arc3’ rad=0.0
‘bar’ armA=0.0,armB=0.0,fraction=0.3,angle=None
  • 举个例子

代码(只贴备注部分的代码):

mp.annotate(r'$[\frac{3\pi}{4}, cos(\frac{3\pi}{4})]$',xycoords='data',xy=(3/4 * np.pi, np.cos(px[1])),textcoords='offset points',xytext=(-80, -30),fontsize=14,arrowprops=dict(arrowstyle='-|>',connectionstyle='angle3'))

图像:


Matplotlib基础(part1)--基本绘图相关推荐

  1. matplotlib基础教程-3D绘图(2)

    基本3D图的绘制 Matplotlib 已经内置了三维图形,所以我们只需要引入这些完整的模块就可以了: from mpl_toolkits.mplot3d import axes3d import m ...

  2. python绘图实例-Python matplotlib基础绘图函数示例

    原标题:Python matplotlib基础绘图函数示例 Pyplot基础图标函数: 函数 说明 plt.plot(x,y,fmt,-) 绘制一个坐标图 plt.boxplot(data,notch ...

  3. Python绘图之matplotlib基础教程:matplotlib库图表绘制中常规设置大全(交互模式、清除原有图像、设置横坐标显示文字/旋转角度、添加图例、绘图布局自动调整、图像显示、图像暂停)

    Python绘图之matplotlib基础教程:matplotlib库图表绘制中常规设置大全(交互模式.清除原有图像.设置横坐标显示文字/旋转角度.添加图例.绘图布局自动调整.图像显示.图像暂停) 目 ...

  4. 【Python】matplotlib基础:数据可视化

    matplotlib基础:绘图和可视化 目录: 文章目录 @[toc] 一 绘图的可用性 一 绘图的可用性

  5. python:matplotlib基础(2)

    #%% md ### 图片灰度处理 #%% import numpy as np import pandas as pd import matplotlib.pyplot as plt %matplo ...

  6. python:matplotlib基础(1)

    Matplotlib中的基本图表包括的元素 + x轴和y轴   水平和垂直的轴线 + x轴和y轴刻度   刻度标示坐标轴的分隔,包括最小刻度和最大刻度 + x轴和y轴刻度标签   表示特定坐标轴的值 ...

  7. python:matplotlib基础(3)

    #%% md ### 图片灰度处理 #%% md 三种方法 #%% import matplotlib.pyplot as plt %matplotlib inline #%% import nump ...

  8. 数据分析(1)Matplotlib基础内容

    文章目录 一. Matplotlib基础知识 (一)底层容器层 1. 画布Figure (1)plt.subplot() (2)plt.subplots() (3)fig.add_subplot() ...

  9. Matplotlib基础(三)---- 图例标签、刻度、标题和边线

    Matplotlib基础(三)---- 图例标签.刻度.标题和边线 在平时处理数据的时候,因为数据可视化更能显示数据的关系.而python中的matplotlib库很好地提供了我们2D绘图的方式.于是 ...

最新文章

  1. 《我想进大厂》之JVM夺命连环10问
  2. VC网络通信API概览
  3. python经典100例(41-60)
  4. 非功能性需求_更好的开卡,来聊聊非功能性需求
  5. ue4 点击启动_4399游戏2020届校招启动
  6. sqlserver日期函数
  7. JAVA阻止继承:final类和方法
  8. 指纹识别的原理和方法
  9. Auto CAD 2020安装教程附安装包下载-详细教程
  10. Boggle单词游戏求解
  11. react具名插槽与作用域插槽
  12. Redis(测试连接, 五大数据类型,三种特殊数据类型)
  13. 从零开始学CV之二损失函数篇(3)
  14. 乐视腾讯深度合作 超级电视26日易迅网首发
  15. jquery 添加插入元素技巧前面和后面
  16. f803配置_中兴F803ONU
  17. 科技公司融资潮后怎么走?Snap公司40亿美元投石问路
  18. GigE发现设备——IP Configuration和Device Enumeration
  19. HBase_HBase 数据读取流程解析
  20. 中图法检索计算机科学方面,千兆位以太网中可以使用超5类UTP双绞线。【

热门文章

  1. mysql where从句_MySQL死锁系列-常见加锁场景分析
  2. 视图解析器中配置前缀和后缀---SpringMVC学习笔记(五)
  3. Class类---反射学习笔记(一)
  4. Java集合-ArrayList源码解析-JDK1.8
  5. Java内存区域与内存溢出
  6. WebAPi添加常用扩展方法及思维发散
  7. Java等线程池执行完所有任务后再执行主线程
  8. 利用Redis实现消息队列原理
  9. J2EE,J2SE,J2ME,JDK,SDK,JRE,JVM区别
  10. Java语法糖1:可变长度参数以及foreach循环原理