[問題] 繪圖,雙重x軸,且兩條x軸有函數關係已回收

看板MATLAB作者 (回地球啦)時間15年前 (2010/11/01 20:40), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串1/2 (看更多)
我想要畫一張 f(T) vs 1/kT 的圖 其中k是常數 (Boltzmann's constant) 但是這樣的圖會很難閱讀T的值, 所以想要在圖形的上方再加上一條x軸 因此每一個f(T)點,我都可以往下看到1/kT的值,以及往上看到T值 我研究了很久, 發現最接近的寫法是 figure; h11=plot(data(:,3),data(:,6),'s') xlabel('1/kT (eV^{-1})'), ylabel('f(T)'); ax1=gca; set(ax1,'YLim',[-6,1],'XAxisLocation','bottom','YAxisLocation','left'); box off; ax2 = axes('Position',get(ax1,'Position'),'XAxisLocation','top',... 'YAxisLocation','right','Color','none','XDir','reverse','XLim',... [1500,3100],'YLim',[-6,1],'XColor','k','YColor','k'... 'XScale','log'); % 我試著用reverse x-axis 和log scale 來定義第二條x軸 xlabel('T (K)','FontSize',12) set(ax2,'XTick',[1500,1700, 1900, 2100,2300,2500,2700,2900, 3100]) %%%%%% 但是這作法並沒有讓兩個x軸的數值有函數對應關係~ 我發現隔壁實驗室使用的軟體有 'Xscale','inverse' 的選項, (他們自己寫的軟體) 可是matlab似乎沒有... 很多papers都有作出類似的圖,我不太相信像matlab那麼強大的工具卻反而畫不出來 有人有類似的經驗嗎? 感謝賜教!! :) -- 你知道嗎? 最美的音樂 是寂靜, 再來, 才是巴哈。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 82.6.100.139 ※ 編輯: laion 來自: 82.6.100.139 (11/01 20:41) ※ 編輯: laion 來自: 82.6.100.139 (11/01 20:42)

11/01 23:11, , 1F
ax2的XDir不要reverse,直接用ax1的XTick
11/01 23:11, 1F

11/01 23:14, , 2F
讀取XTick計算每個1/k/XTick,轉字串至ax2的XTickLabel
11/01 23:14, 2F
文章代碼(AID): #1CphKbn2 (MATLAB)
文章代碼(AID): #1CphKbn2 (MATLAB)