python怎么画两幅图_python matplotlib模块: Subplots(在同一个figure里绘制多个图)
我們使用subplot可以實現(xiàn)在同一個figure對象下繪制多個圖像:figure對象:
image.png
每一個這樣的圖都包含唯一一個figure對象,而一個figure對象里面可以包含多個axes對象,而每一個axes對象又可以繪制多個數(shù)據(jù)集的圖像,在這幅圖里,我們在一個figure對象下面使用了一個axes對象并在該axes對象下面繪制了3個數(shù)據(jù)集的圖像。
而subplot可以幫助我們把這三個數(shù)據(jù)集的圖象分開放在不同的坐標軸中(也就是放置在不同的axes對象中)。
數(shù)據(jù)集
我們首先將數(shù)據(jù)集實線數(shù)據(jù)繪制到一個figure對象中, 將虛線數(shù)據(jù)繪制到另一個figure對象中,這樣最后我們的結(jié)果就會有兩個figure對象繪制而成的圖依次彈出來:
image.png
兩個figure繪制的源碼:
import pandas as pd
from matplotlib import pyplot as plt
'''
# one figure, one axes, three drawing objects
plt.style.use('seaborn')
data = pd.read_csv('data_12.csv')
ages = data['Age']
dev_salaries = data['All_Devs']
py_salaries = data['Python']
js_salaries = data['JavaScript']
plt.plot(ages, py_salaries, label='Python')
plt.plot(ages, js_salaries, label='JavaScript')
plt.plot(ages, dev_salaries, color='#444444',
linestyle='--', label='All Devs')
plt.legend()
plt.title('Median Salary (USD) by Age')
plt.xlabel('Ages')
plt.ylabel('Median Salary (USD)')
plt.tight_layout()
plt.show()
'''
# two figure each has one axes, one have two drawing obg while another has one.
plt.style.use('seaborn')
data = pd.read_csv('data_12.csv')
ages = data['Age']
dev_salaries = data['All_Devs']
py_salaries = data['Python']
js_salaries = data['JavaScript']
# 創(chuàng)建兩個子繪圖對象, 每個對象分別有一個figure和axes
fig1, ax1 = plt.subplots()
fig2, ax2 = plt.subplots()
# 在其中一個figure對象中繪制虛線的數(shù)據(jù)
ax1.plot(ages, dev_salaries, color='#444444',
linestyle='--', label='All Devs')
# 在另外的figure對象中繪制實線的數(shù)據(jù)
ax2.plot(ages, py_salaries, label='Python')
ax2.plot(ages, js_salaries, label='JavaScript')
ax1.legend()
ax1.set_title('Median Salary (USD) by Age')
ax1.set_ylabel('Median Salary (USD)')
ax2.legend()
ax2.set_xlabel('Ages')
ax2.set_ylabel('Median Salary (USD)')
plt.tight_layout()
plt.show()
# 同時自動保存下兩個figure對象的繪制結(jié)果
# fig1.savefig('fig1.png')
# fig2.savefig('fig2.png')
我們再嘗試將數(shù)據(jù)繪制到同一個figure中,用兩個axes對象分別繪制, 這兩個axes對象可以并排,同列......等等, 完全取決于你的參數(shù):
放在同行:
image.png
放在同列:
image.png
詳細代碼如下:
# one figure, two axes, one have two drawing obg while another has one.
plt.style.use('seaborn')
data = pd.read_csv('data_12.csv')
ages = data['Age']
dev_salaries = data['All_Devs']
py_salaries = data['Python']
js_salaries = data['JavaScript']
# 創(chuàng)建一個子繪圖對象, 有兩個axes對象, 分別放置在1行1列和1行2列, 表現(xiàn)出來的效果就是在同一行上并排繪制兩個圖
# fig1, (ax1, ax2) = plt.subplots(nrows=1, ncols=2)
# 創(chuàng)建一個子繪圖對象, 有兩個axes對象, 分別放置在1行1列和2行1列, 表現(xiàn)出來的效果就是在同一列上并行繪制兩個圖
# 注意sharex參數(shù)可以使同一列的plot采用同一個橫軸, sharey參數(shù)可以使同一行的plot采用同一個豎軸
fig1, (ax1, ax2) = plt.subplots(nrows=2, ncols=1, sharex=True)
# 在其中一個figure對象中繪制虛線的數(shù)據(jù)
ax1.plot(ages, dev_salaries, color='#444444',
linestyle='--', label='All Devs')
# 在另外的figure對象中繪制實線的數(shù)據(jù)
ax2.plot(ages, py_salaries, label='Python')
ax2.plot(ages, js_salaries, label='JavaScript')
ax1.legend()
ax1.set_title('Median Salary (USD) by Age')
ax1.set_ylabel('Median Salary (USD)')
ax2.legend()
ax2.set_xlabel('Ages')
ax2.set_ylabel('Median Salary (USD)')
plt.tight_layout()
plt.show()
總結(jié)
以上是生活随笔為你收集整理的python怎么画两幅图_python matplotlib模块: Subplots(在同一个figure里绘制多个图)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: pytorch自带网络_【方家之言】一篇
- 下一篇: python快速编程入门课本中的名片管理
