亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將來自不同源的多個軸添加到同一圖形中

將來自不同源的多個軸添加到同一圖形中

鳳凰求蠱 2022-08-25 16:35:12
我正在使用Python / matplotlib創建一個圖,其中它有三個子圖,每個子圖都來自不同的“源”或類方法。例如,我有一個名為“plot_spectra.py”的腳本,其中包含帶有方法的類。Spectra()Plot()所以,調用Spectra('filename.ext')。Plot() 將返回一個元組,如下代碼所示:# create the plotfig, ax = plt.subplots()ax.contour(xx, yy, plane, levels=cl, cmap=cmap)ax.set_xlim(ppm_1h_0, ppm_1h_1)ax.set_ylim(ppm_13c_0, ppm_13c_1)# return the contour plotreturn fig, ax我的理解是,“數字”是matplotlib中的“窗口”,而“斧頭”是一個單獨的情節。然后我想說,在同一個圖中繪制了三個這些“斧頭”對象,但我正在努力做到這一點,因為我一直得到一個空窗口,我認為我誤解了每個對象實際上是什么。叫:hnca, hnca_ax = Spectra('data/HNCA.ucsf', type='sparky').Plot(plane_ppm=resi.N(), vline=resi.H())plt.subplot(2,2,1)plt.subplot(hnca_ax)eucplot, barplot = PlotEucXYIntensity(scores, x='H', y='N')plt.subplot(2,2,3)plt.subplot(eucplot)plt.subplot(2,2,4)plt.subplot(barplot)plt.show()最終,我試圖獲得的是一個如下所示的單個窗口:其中,每個繪圖都是從不同的函數或類方法返回的。我需要從函數返回哪個“對象”?如何將這三個對象合并到一個圖形中?
查看完整描述

2 回答

?
呼如林

TA貢獻1798條經驗 獲得超3個贊

我建議采用這種方法,其中指定要在函數中繪制的軸:


import matplotlib.pyplot as plt

import numpy as np

import seaborn as sns


def Spectra(data, ax):

  ax.plot(data)


def PlotIntensity(data, ax):

  ax.hist(data)


def SeabornScatter(data, ax):

  sns.scatterplot(data, data, ax = ax)


spectrum = np.random.random((1000,))


plt.figure()


ax1 = plt.subplot(1,3,1)

Spectra(spectrum, ax1)


ax2 = plt.subplot(1,3,2)

SeabornScatter(spectrum, ax2)


ax3 = plt.subplot(1,3,3)

PlotIntensity(spectrum, ax3)


plt.tight_layout()

plt.show()

您可以通過非常不同的方式為子圖指定格網,您可能還想查看 gridspec 模塊。


查看完整回答
反對 回復 2022-08-25
?
尚方寶劍之說

TA貢獻1788條經驗 獲得超4個贊

一種方法是:


f = plt.figure()

gs = f.add_gridspec(2,2)

ax = f.add_subplot(gs[0,:])

將“2,2”視為添加 2 行 x 2 列。在第三行“gs[0,:]”告訴在第0行(所有列)上添加一個圖表。這將在頂部創建圖表。請注意,索引以 0 開頭,而不是以 1 開頭。


要添加“eucplot”,您必須在第 1 行和第 0 列上調用不同的軸:


ax2 = f.add_subplot(gs[1,0])

最后,“barplot”將進入第1行第1列的另一個軸:


ax3 = f.add_subplot(gs[1,1])

有關進一步的參考,請參閱此處的此站點:使用 GridSpec 和其他函數自定義圖形布局


查看完整回答
反對 回復 2022-08-25
  • 2 回答
  • 0 關注
  • 105 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號