python必備庫Matplotlib畫圖神器
前言:
Matplotlib 通常與 NumPy、Pandas 一起使用,是數(shù)據(jù)分析中不可或缺的重要工具之一。
Matplotlib 是 Python 中類似 MATLAB 的繪圖工具,如果您熟悉 MATLAB,那么可以很快的熟悉它。Matplotlib 提供了一套面向?qū)ο罄L圖的 API,它可以輕松地配合 Python GUI 工具包(比如 PyQt,WxPython、Tkinter)在應用程序中嵌入圖形。與此同時,它也支持以腳本的形式在 Python、IPython Shell、Jupyter Notebook 以及 Web 應用的服務器中使用。
官網(wǎng)地址:

可以看看docs

官網(wǎng)就相當詳細了,可以直接參考官網(wǎng)。
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()成功出現(xiàn)下圖就可以動手改造了。

2.用好官網(wǎng)的例子
最簡單的應用-折線圖
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會出現(xiàn)下圖:

折線圖之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()
到此這篇關(guān)于python必備庫Matplotlib畫圖神器的文章就介紹到這了,更多相關(guān)Matplotlib畫圖神器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Phantomjs抓取渲染JS后的網(wǎng)頁(Python代碼)
phantomjs:我的理解就是它是一個無顯示的瀏覽器,也就是說除了不能顯示頁面內(nèi)容以外,瀏覽器能干的活兒它基本上都能干。下面我們就來利用他做點有趣的事情2016-05-05
使用keras根據(jù)層名稱來初始化網(wǎng)絡(luò)
這篇文章主要介紹了使用keras根據(jù)層名稱來初始化網(wǎng)絡(luò),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
python中的PywebIO模塊制作一個數(shù)據(jù)大屏
這篇文章主要介紹了python中的PywebIO模塊制作一個數(shù)據(jù)大屏,一個制作數(shù)據(jù)大屏的工具,非常的好用,100行的Python代碼就可以制作出來一個完整的數(shù)據(jù)大屏,并且代碼的邏輯非常容易理解,需要的朋友可以參考一下2022-03-03

