Matplotlib基础(part1)--基本绘图
生活随笔
收集整理的這篇文章主要介紹了
Matplotlib基础(part1)--基本绘图
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
學(xué)習(xí)筆記,這個筆記以例子為主。
開發(fā)工具:Spyder
文章目錄
- matplotlib概述
- matplotlib基本繪圖
- 先來幾個案例簡單了解一下matplotlib
- 案例1(繪制一條余弦曲線)
- 案例2(繪制水平線與垂直線)
- 案例3(繪制多條垂直/水平線)
- 線型、線寬和顏色
- 設(shè)置坐標軸范圍
- 設(shè)置坐標刻度
- 舉個例子(修改坐標軸刻度)
- 舉個例子2(Latex排版語法字符串)
- 設(shè)置坐標軸
- 圖例
- 特殊點
- 備注
matplotlib概述
matplotlib是python的一個繪圖庫。使用它可以很方便的繪制質(zhì)量級別高的圖形。
matplotlib基本繪圖
先來幾個案例簡單了解一下matplotlib
案例1(繪制一條余弦曲線)
- 語法
代碼:
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 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()圖像:
線型、線寬和顏色
- 語法
參數(shù)表:
| linestyle | 線型 | "-" "--" ":" ".-" |
| linewidth | 線寬 | 數(shù)字 |
| color | 顏色 | 顏色的英文單詞 / 常見顏色英文單詞首字母 / #495434 / (1,1,1) / (1,1,1,1) |
| alpha | 透明度 | 浮點數(shù)值 |
顏色表:
- 舉個例子
代碼:
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()圖像:
設(shè)置坐標軸范圍
- 語法
- 舉個例子(設(shè)置坐標軸范圍)
代碼:
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()圖像:
設(shè)置坐標刻度
- 語法
舉個例子(修改坐標軸刻度)
代碼:
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()圖像:
設(shè)置坐標軸
- 語法
- 舉個例子
代碼:
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')# 設(shè)置坐標軸 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()圖像:
圖例
- 語法
位置(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()圖像:
特殊點
- 語法
點型圖:
- 舉個例子
代碼(只貼繪制特殊點的代碼):
# 繪制特殊點 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)圖像:
備注
- 語法
arrowprops參數(shù)使用字典定義指向目標點的箭頭樣式:
#arrowprops字典參數(shù)的常用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)字符串如下:
| ‘a(chǎn)ngle’ | angleA=90,angleB=0,rad=0.0 |
| ‘a(chǎn)ngle3’ | angleA=90,angleB=0` |
| ‘a(chǎn)rc’ | angleA=0,angleB=0,armA=None,armB=None,rad=0.0 |
| ‘a(chǎn)rc3’ | 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'))圖像:

總結(jié)
以上是生活随笔為你收集整理的Matplotlib基础(part1)--基本绘图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 192.168.1.1手机登陆设置
- 下一篇: Matplotlib基础(part2)-