python數學建模之Matplotlib 實現圖片繪制

Matplotlib 學習

Matplotlib簡介

# Matplotlib簡介:
'''
使用 Matplotlib 在 Python 中創建圖表【Matplotlib 是用於創建圖表的 Python 庫】
Matplotlib 是一個非常強大的 Python 畫圖工具,我們可以使用該工具將很多數據通過圖表的形式更直觀的呈現出來。
它能讓使用者很輕松地將數據圖形化,並且提供多樣化的輸出格式【可創建散點圖,折線圖,條形圖和餅圖等】
Matplotlib 可以用來繪制各種靜態,動態,交互式的圖表。
註:在使用之前需在終端安裝Matplotlib
安裝命令為:pip install matplotlib
Matplotlib應用:
Matplotlib 通常與 NumPy 和 SciPy(Scientific Python)一起使用, 這種組合廣泛用於替代 MatLab,
是一個強大的科學計算環境,有助於我們通過 Python 學習數據科學或者機器學習

'''
# 查看版本
import matplotlib
print(matplotlib.__version__)

Matplotlib 散點圖

# Matplotlib 散點圖
# 散點圖是一種圖形或數學圖,使用笛卡爾坐標顯示一組數據的兩個變量的值

# 使用時,我們可以使用 import 導入 pyplot 庫,並設置一個別名 plt
import matplotlib.pyplot as plt

x_hz = [i for i in range(10)]                   # 時間數據
y_zz = [6, 14, 21, 36, 45, 52, 66, 72, 88, 92]  # 價格數據

plt.title('price for 10 years')                 # 設置圖表標題
plt.scatter(x_hz, y_zz, color='blue', marker='x', label='item 1')   # scatter()功能繪制散點圖
plt.xlabel('year')      # 設置x軸標簽
plt.ylabel('price')     # 設置y軸標簽

plt.grid(True)          # grid()功能顯示網格
plt.legend()            # legend()功能在軸上放置圖例
plt.show()              # 顯示圖表

運行效果如下:

Matplotlib Pyplot

# Matplotlib Pyplot
'''
Pyplot 是 Matplotlib 的子庫,提供瞭和 MATLAB 類似的繪圖 API。
Pyplot 是常用的繪圖模塊,能很方便讓用戶繪制 2D 圖表。
Pyplot 包含一系列繪圖函數的相關函數,每個函數會對當前的圖像進行一些修改

'''
import matplotlib.pyplot as plt
import numpy as np
x_d = np.array([0, 8])
y_d = np.array([0, 120])
plt.plot(x_d, y_d)  # plot() 函數是繪制二維圖形的最基本函數
plt.show()

運行效果如下:

關於plot()

# 關於plot()
'''
plot() 用於畫圖它可以繪制點和線,語法格式如下:
# 畫單條線
plot([x], y, [fmt], *, data=None, **kwargs)
# 畫多條線
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)
參數說明:
x, y:點或線的節點,x 為 x 軸數據,y 為 y 軸數據,數據可以列表或數組。
fmt:可選,定義基本格式(如顏色、標記和線條樣式)。
**kwargs:可選,用在二維平面圖上,設置指定屬性,如標簽,線的寬度等。
顏色字符:'b' 藍色,'m' 洋紅色,'g' 綠色,'y' 黃色,'r' 紅色,'k' 黑色,'w' 白色,'c' 青綠色,'#008000' RGB 顏色符串。多條曲線不指定顏色時,會自動選擇不同顏色。
線型參數:'‐' 實線,'‐‐' 破折線,'‐.' 點劃線,':' 虛線。
標記字符:'.' 點標記,',' 像素標記(極小點),'o' 實心圈標記,'v' 倒三角標記,'^' 上三角標記,'>' 右三角標記,'<' 左三角標記...等等
'''
# 可使用 o 參數,表示一個實心圈的標記
import matplotlib.pyplot as plt
import numpy as np
x_p = np.array([0, 6])
y_p = np.array([3, 9])
plt.plot(x_p, y_p, 'o')
plt.show()

運行效果如下:

繪制任意數量的點

# 繪制任意數量的點
import matplotlib.pyplot as plt
import numpy as np
x_dp = np.array([1, 3, 5, 7, 9])
y_dp = np.array([8, 4, 2, 6, 0])
plt.plot(x_dp, y_dp)
plt.show()

運行效果如下:

不指定 x 軸上的點,看看效果

# 不指定 x 軸上的點,看看效果
import matplotlib.pyplot as plt
import numpy as np
yd = np.array([2, 9])
plt.plot(yd)
plt.show()

運行效果如下:

再看看y更多值的效果

# 再看看y更多值的效果
import matplotlib.pyplot as plt
import numpy as np
yd2 = np.array([2, 9, 1, 8, 3, 8])
plt.plot(yd2)
plt.show()

運行效果如下:

繪制正餘弦圖:

# 繪制正餘弦圖:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 4*np.pi, 0.1)
y = np.sin(x)
z = np.cos(x)
plt.plot(x, y, x, z)
plt.show()

運行效果如下:

兩個數據集

# 兩個數據集
import matplotlib.pyplot as plt
x_d1 = [i for i in range(1, 11)]
y_d1 = [2, 32, 41, 6, 15, 34, 34, 23, 12, 9]
x_d2 = [i for i in range(1, 11)]
y_d2 = [4, 12, 43, 21, 52, 32, 12, 43, 8, 20]
plt.title('Prices for 10 years')
plt.scatter(x_d1, y_d1, color='darkblue', marker='x', label='item 1')
plt.scatter(x_d2, y_d2, color='darkred', marker='x', label='item 2')
plt.xlabel('Year')
plt.ylabel('Price')
plt.grid(True)
plt.legend()
plt.show()

運行效果如下:

Matplotlib 繪圖標記

實心圓標記:

# Matplotlib 繪圖標記
# 繪圖過程可使用 plot() 方法的 marker 參數來定義標記
# 實心圓標記:
import matplotlib.pyplot as plt
import numpy as np
yp = np.array([1, 3, 1, 4, 1, 5, 9, 5, 2, 1])
plt.plot(yp, marker='o')
plt.show()

運行效果如下:

用 * 標記

# 用 * 標記
import matplotlib.pyplot as plt
import numpy as np
yp2 = np.array([2, 3, 2, 43, 23, 12, 3, 4, 12, 43, 12])
plt.plot(yp, marker='*')
plt.show()

運行效果如下:

用下箭頭標記

# 用下箭頭標記
import matplotlib.pyplot as plt
import matplotlib.markers
plt.plot([1, 3, 5], marker=matplotlib.markers.CARETUPBASE)
plt.show()

運行效果如下:

Matplotlib 折線圖

# Matplotlib 折線圖
# 折線圖是一種顯示圖表的圖表,該信息顯示為一系列數據點,這些數據點通過直線段相連,稱為標記
# 正弦波折線圖:
import matplotlib.pyplot as plt
import numpy as np
t = np.arange(0.0, 4.0, 0.01)   # arange()函數返回給定間隔內的均勻間隔的值列表
s = np.sin(2.5*np.pi*t)
# plot()功能繪制折線圖
plt.plot(t, s)
plt.title('Wave')
plt.xlabel('Time')
plt.ylabel('Vol')
plt.grid(True)
plt.show()

運行效果如下:

fmt 參數

# fmt參數
'''
fmt 參數
fmt 參數定義瞭基本格式,如標記、線條樣式和顏色。
fmt = '[marker][line][color]'
如   o:r【o 表示實心圓標記,: 表示虛線,r 表示顏色為紅色】

:  代表虛線        -  代表實線
-- 代表破折線      -. 代表點劃線
除瞭黑色是用k表示,其他顏色均用各自英文首字母表示

'''
import matplotlib.pyplot as plt
import numpy as np
ft = np.array([3, 9, 2, 6])
plt.plot(ft, 'o:r')
plt.show()

運行效果如下:

標記大小與顏色

設置標記大小:

# 標記大小與顏色
'''
標記大小與顏色
我們可以自定義標記的大小與顏色,使用的參數分別是:
markersize,簡寫為 ms:定義標記的大小。
markerfacecolor,簡寫為 mfc:定義標記內部的顏色。
markeredgecolor,簡寫為 mec:定義標記邊框的顏色。
'''
# 設置標記大小:
import matplotlib.pyplot as plt
import numpy as np
dx = np.array([2, 32, 1, 43, 12, 12, 3])
plt.plot(dx, marker='o', ms=20)
plt.show()

運行效果如下:

設置標記外邊框顏色:

# 設置標記外邊框顏色:
import numpy as np
import matplotlib.pyplot as plt
yys = np.array([2, 1, 43, 1, 2, 12, 1])
plt.plot(yys, marker='*', ms=20, mec='g')
plt.show()

運行效果如下:

設置標記內部顏色:

# 設置標記內部顏色:
import matplotlib.pyplot as plt
import numpy as np
nys = np.array([2,3, 32, 12, 43, 12, 9])
plt.plot(nys, marker='o', ms=20, mfc='r')
plt.show()

運行效果如下:

Matplotlib 條形圖

# Matplotlib 條形圖
# 條形圖顯示帶有矩形條的分組數據,其長度與它們代表的值成比例【條形圖可以垂直或水平繪制】
import matplotlib.pyplot as plt
import matplotlib.style as sty
sty.use('ggplot')
x = [i for i in range(1, 4)]
y = [12, 8, 4]
fuck, ax = plt.subplots()       # subplots()函數返回圖形和軸對象
ax.bar(x, y, align='center')    # bar()功能生成條形圖
ax.set_title('Olympic Gold for London')
ax.set_ylabel('Gold medals')
ax.set_xlabel('Countries')
ax.set_xticks(x)
ax.set_xticklabels(('China', 'UK', 'USA'))
plt.show()

運行效果如下:

總結

到此這篇關於python數學建模之Matplotlib 實現圖片繪制的文章就介紹到這瞭,更多相關python Matplotlib 內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

上一章鏈接:python數學建模(SciPy+ Numpy+Pandas)

推薦閱讀: