網站首頁 編程語言 正文
前言:
Matplotlib
通常與 NumPy、Pandas 一起使用,是數據分析中不可或缺的重要工具之一。
Matplotlib
是 Python 中類似 MATLAB 的繪圖工具,如果您熟悉 MATLAB,那么可以很快的熟悉它。Matplotlib 提供了一套面向對象繪圖的 API,它可以輕松地配合 Python GUI 工具包(比如 PyQt,WxPython、Tkinter)在應用程序中嵌入圖形。與此同時,它也支持以腳本的形式在 Python、IPython Shell、Jupyter Notebook 以及 Web 應用的服務器中使用。
官網地址:
https://matplotlib.org/
可以看看docs
官網就相當詳細了,可以直接參考官網。
1.安裝方法
pip安裝:
pip3 install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
conda安裝:
conda install matplotlib
測試是否成功:
import numpy as np? from matplotlib import pyplot as plt? ? x = np.arange(1,11)? y = ?2 ?* x + ?5? plt.title("Matplotlib demo")? plt.xlabel("x axis caption")? plt.ylabel("y axis caption")? plt.plot(x,y)? plt.show()
成功出現下圖就可以動手改造了。
2.用好官網的例子
最簡單的應用-折線圖
fig, ax = plt.subplots() ?# Create a figure containing a single axes. ax.plot([1, 2, 3, 4], [1, 4, 2, 3]); ?# Plot some data on the axes.
添加注釋的方法
fig, ax = plt.subplots(figsize=(5, 2.7)) t = np.arange(0.0, 5.0, 0.01) s = np.cos(2 * np.pi * t) line, = ax.plot(t, s, lw=2) ax.annotate('local max', xy=(2, 1), xytext=(3, 1.5), ? ? ? ? ? ? arrowprops=dict(facecolor='black', shrink=0.05)) ax.set_ylim(-2, 2);
柱狀圖-Bar Label
import matplotlib.pyplot as plt import numpy as np N = 5 menMeans = (20, 35, 30, 35, -27) womenMeans = (25, 32, 34, 20, -25) menStd = (2, 3, 4, 1, 2) womenStd = (3, 5, 2, 3, 3) ind = np.arange(N) ? ?# the x locations for the groups width = 0.35 ? ? ? # the width of the bars: can also be len(x) sequence fig, ax = plt.subplots() p1 = ax.bar(ind, menMeans, width, yerr=menStd, label='Men') p2 = ax.bar(ind, womenMeans, width, ? ? ? ? ? ? bottom=menMeans, yerr=womenStd, label='Women') ax.axhline(0, color='grey', linewidth=0.8) ax.set_ylabel('Scores') ax.set_title('Scores by group and gender') ax.set_xticks(ind, labels=['G1', 'G2', 'G3', 'G4', 'G5']) ax.legend() # Label with label_type 'center' instead of the default 'edge' ax.bar_label(p1, label_type='center') ax.bar_label(p2, label_type='center') ax.bar_label(p2) plt.show()
正常run會出現下圖:
折線圖之CSD
計算兩個信號的交叉譜密度Compute the cross spectral density of two signals
import numpy as np import matplotlib.pyplot as plt fig, (ax1, ax2) = plt.subplots(2, 1) # make a little extra space between the subplots fig.subplots_adjust(hspace=0.5) dt = 0.01 t = np.arange(0, 30, dt) # Fixing random state for reproducibility np.random.seed(19680801) nse1 = np.random.randn(len(t)) ? ? ? ? ? ? ? ? # white noise 1 nse2 = np.random.randn(len(t)) ? ? ? ? ? ? ? ? # white noise 2 r = np.exp(-t / 0.05) cnse1 = np.convolve(nse1, r, mode='same') * dt ? # colored noise 1 cnse2 = np.convolve(nse2, r, mode='same') * dt ? # colored noise 2 # two signals with a coherent part and a random part s1 = 0.01 * np.sin(2 * np.pi * 10 * t) + cnse1 s2 = 0.01 * np.sin(2 * np.pi * 10 * t) + cnse2 ax1.plot(t, s1, t, s2) ax1.set_xlim(0, 5) ax1.set_xlabel('time') ax1.set_ylabel('s1 and s2') ax1.grid(True) cxy, f = ax2.csd(s1, s2, 256, 1. / dt) ax2.set_ylabel('CSD (db)') plt.show()
原文鏈接:https://blog.csdn.net/weixin_39490300/article/details/123505946
相關推薦
- 2023-01-14 詳解C#如何實現屏幕放大和取色功能_C#教程
- 2022-12-26 詳解C++11中的lambda匿名函數_C 語言
- 2023-05-19 Flutter?枚舉值enum和int互相轉化總結_Android
- 2022-07-25 Android自定義View原理(實戰)_Android
- 2022-07-19 C語言實現KMP算法+優化
- 2022-05-21 Python中with上下文管理協議的作用及用法_python
- 2022-05-15 React中的Diff算法你了解嗎_React
- 2022-05-17 ubuntu Could NOT find CURL (missing: CURL_LIBRARY
- 最近更新
-
- 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同步修改后的遠程分支