網站首頁 編程語言 正文
0、引言
為了讓用戶能夠使用python時,方便地繪制 2D 圖表,PYTHON的模塊中提供Matplotlib模塊中所含的子庫pyplot,提供了和 MATLAB 類似的繪圖功能。Pyplot 包含一系列繪圖函數的相關函數,每個函數會對當前的圖像進行一些修改。本文通過繪制三角函數cos()來對其中一些重要函數進行講解。
1、繪圖
(1)導入所需庫
import numpy as np
import matplotlib.pyplot as plt
# 用于顯示中文字符
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
(2)設置函數
t = np.arange(0, 12, 0.01)
s = np.cos(2 * np.pi * t)
(3)plt.figure()
figure()函數用于展開和設置畫布相關參數,figure(num, figsize),num設置為數字時為畫布編號,字符串時為畫布名;figsize用于設置畫布大小(長,寬)。兩者不是必須設置的,如果沒有,會自動生成合適的結果。還有其他一些參數可以設置,但不常用,就不介紹了,想了解的自行搜索相關內容。
plt.figure(num=1, figsize=(10, 10))
(4)plt.plot(),plt.axhline(),plt.axvline(),plt.axhspan(),plt.axvspan()
plot()用于繪制點和線
plt.plot(x, y, format_string, **kwargs),其中:
- x:X軸數據,列表或數組,可選
- y:Y軸數據,列表或數組
- format_string:控制曲線的格式字符串,可選。包括線條的顏色,樣式,寬度等
- **kwargs:第二組或更多(x,y,format_string),可畫多條曲線
plt.plot(t, s, color='red', ls='-', label='sinx')
plt.axhline(),plt.axvline()分別用于繪制平行于x軸和y軸的直線,參數設置和plt.plot()相似。
# 畫y=o的直線,平行于x軸;
plt.axhline(y=0, color='green', lw=2, label='分割線')
# 畫x=4的直線,平行于y軸;
plt.axvline(x=0, color='b', lw=2, label='分割線2')
plt.axhspan(),plt.axvspan()用于繪制垂直于y軸和x軸的參考區域
# 繪制垂直于x軸的參考區域
plt.axhspan(ymin=0, ymax=.1, facecolor='r', alpha=0.2)
plt.axvspan(xmin=0, xmax=1, facecolor='r', alpha=0.2)
(5)設置 x,y 軸的數值范圍
plt.axis([xmin, xmax, ymin, ymax])和plt.xlim(xmin, xmax),plt.ylim(ymin, ymax)功能相同,用于設置坐標軸范圍;plt.xticks(list(range(xmin, xmax, 刻度間距))),plt.yticks(list(range((ymin, ymax, 刻度間距)))能更加精確地設置自己想要刻度。
# plt.axis([x_min, x_max, y_min, y_max])
# plt.xlim(0, 12)
# plt.ylim(-1, 1)
plt.xticks(list(range(0, 12, 2)))
plt.yticks(list(range(-1, 2, 1)))
(6)設置 x,y 軸的標題文本
plt.xlabel('x軸')
plt.ylabel('y軸')
(7)設置圖例和標題
plt.legend()'
plt.title("正弦函數")
plt.legend()要想正常實現功能效果,plt.plot()中label必須設置。
(8)plt.show()
必須有的函數。在關閉show()函數彈出的圖像窗口前,show()函數后面的代碼不會運行,直到用戶關閉圖像窗口,才會繼續。
完整代碼:
import numpy as np
import matplotlib.pyplot as plt
# 用于顯示中文字符
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 預設參數
t = np.arange(0, 12, 0.01)
s = np.cos(2 * np.pi * t)
s2 = np.sin(2 * np.pi * t)
# 打開一個畫布
plt.figure(num=1, figsize=(10, 10))
# 畫函數線,沒有label,圖例舊無法顯示
plt.plot(t, s, color='red', ls='-', label='cosx', )
# 畫y=o的直線,平行于x軸;
plt.axhline(y=0, color='green', lw=2, label='分割線')
# 畫x=4的直線,平行于y軸;
plt.axvline(x=0, color='b', lw=2, label='分割線2')
# 繪制垂直于x軸的參考區域
plt.axhspan(ymin=0, ymax=.1, facecolor='r', alpha=0.2)
plt.axvspan(xmin=0, xmax=1, facecolor='r', alpha=0.2)
# 設置 x,y 軸的數值范圍
# plt.axis([x_min, x_max, y_min, y_max])
# plt.xlim(0, 12)
# plt.ylim(-1, 1)
plt.xticks(list(range(0, 12, 2)))# 可調刻度
plt.yticks(list(range(-1, 2, 1)))
# 設置 x,y 軸的標題文本
plt.xlabel('x軸')
plt.ylabel('y軸')
# 設置圖例
#plt.legend(loc='upper left', bbox_to_anchor=(0.2, 0.95))
plt.legend()
plt.title("正弦函數")
# 在關閉show()函數彈出的圖像窗口前,show()函數后面的代碼不會運行,直到用戶關閉圖像窗口,才會繼續。
plt.show()
2運行結果
總結?
原文鏈接:https://blog.csdn.net/yi_jian_ru_gu/article/details/123898181
相關推薦
- 2022-08-15 利用calc函數實現簡單的自適應
- 2023-02-25 深入理解go?reflect反射慢的原因_Golang
- 2022-07-14 設置Redis最大占用內存的實現_Redis
- 2023-08-30 liunx shell腳本并發控制詳解
- 2022-04-20 Python?設計模式創建型單例模式_python
- 2022-05-06 mac brew 啟動服務時報錯“Bootstrap failed: 5: Input/output
- 2022-05-27 C++左值與右值,右值引用,移動語義與完美轉發詳解_C 語言
- 2023-04-03 Input系統截斷策略的分析與應用詳解_Android
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支