python_matplotlib畫組合圖

下圖是要畫的組合圖的樣式旨剥,用到的核心方法是plt.axes方法机久。方法內的參數是一個list,由左下角坐標藏鹊,寬润讥,高組成:[x,y,w,h](圖中打勾處),注意在構建list的時候考慮進去圖與圖的間隙盘寡,圖中的0.02


組合圖樣式

自定義子圖

#自定義子圖區(qū)域楚殿,需要先構建一個list
#由左下角坐標,寬竿痰,高組成脆粥,來生成子圖[x,y,w,h]
left_x,left_y=0.1,0.1
width,height=0.65,0.65
left_xh=left_x+width+0.02
left_yh=left_y+height+0.02

scatter_area=[left_x,left_y,width,height]
hist_x=[left_xh,left_y,0.2,height]
hist_y=[left_x,left_yh,width,0.2]

plt.figure(1, figsize=(8, 8))
#生成子圖的方法用到plt.axes
area_scatter=plt.axes(scatter_area)
area_histx=plt.axes(hist_x)
area_histy=plt.axes(hist_y)

plt.show()
自定義子圖

再在每個圖里添加要畫的曲線

最終結果

結果

難點是怎么進行坐標軸的統(tǒng)一,步驟如下砌溺,先畫好散點圖

#統(tǒng)計散點圖,畫概率分布圖
#設置概率分布圖的bins的寬度
binwidth=0.25
#統(tǒng)計最大的x值变隔,最大的y值
#np.fabs()返回絕對值
xymax=np.max([np.max(np.fabs(x)),np.max(np.fabs(y))])
#bin的數量
N_bins=int(xymax/binwidth)+1
#最大坐標
lim=N_bins*binwidth
#最小坐標
nlim=-lim
#坐標軸的分布
#注意:np.arange(1,5,1)>>>[1,2,3,4],沒有最后的5抚吠,所以最大值應選用lim+binwidth
bins=np.arange(nlim,lim+binwidth,binwidth)
#根據取得的坐標分布,將散點圖的坐標軸與此對應
area_scatter.set_xlim(nlim,lim)
area_scatter.set_ylim(nlim,lim)
#設置概率分布圖的坐標
area_histx.set_xlim(area_scatter.get_xlim())
area_histy.set_ylim(area_scatter.get_ylim())

完整程序及注釋

#組合圖
import numpy as np
from matplotlib import pyplot as plt
# the random data
x = np.random.randn(1000)
y = np.random.randn(1000)
#自定義子圖區(qū)域弟胀,需要先構建一個list,由左下角坐標喊式,寬孵户,高組成,來生成子圖[x,y,w,h]
left_x,left_y=0.1,0.1
width,height=0.65,0.65
left_xh=left_x+width+0.02
left_yh=left_y+height+0.02

scatter_area=[left_x,left_y,width,height]
hist_x=[left_x,left_yh,width,0.2]
hist_y=[left_xh,left_y,0.2,height]


plt.figure(1, figsize=(8, 8))
#生成子圖的方法用到plt.axes
area_scatter=plt.axes(scatter_area)
area_histx=plt.axes(hist_x)
area_histy=plt.axes(hist_y)

#畫散點圖
area_scatter.scatter(x, y)

#統(tǒng)計散點圖岔留,畫概率分布圖
#設置概率分布圖的bins的寬度
binwidth=0.25
#統(tǒng)計最大的x值夏哭,最大的y值
#np.fabs()返回絕對值
xymax=np.max([np.max(np.fabs(x)),np.max(np.fabs(y))])
#bin的數量
N_bins=int(xymax/binwidth)+1
#最大坐標
lim=N_bins*binwidth
#最小坐標
nlim=-lim
#坐標軸的分布
bins=np.arange(nlim,lim+binwidth,binwidth)
#根據取得的坐標分布,將散點圖的坐標軸與此對應
area_scatter.set_xlim(nlim,lim)
area_scatter.set_ylim(nlim,lim)
#畫出概率分布圖
area_histx.hist(x, bins=bins)
area_histy.hist(y, bins=bins, orientation='horizontal')
#設置概率分布圖的坐標
area_histx.set_xlim(area_scatter.get_xlim())
area_histy.set_ylim(area_scatter.get_ylim())
plt.show()
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末献联,一起剝皮案震驚了整個濱河市竖配,隨后出現的幾起案子,更是在濱河造成了極大的恐慌里逆,老刑警劉巖进胯,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異原押,居然都是意外死亡胁镐,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門诸衔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盯漂,“玉大人,你說我怎么就攤上這事笨农【屠拢” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵谒亦,是天一觀的道長竭宰。 經常有香客問我,道長诊霹,這世上最難降的妖魔是什么羞延? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮脾还,結果婚禮上伴箩,老公的妹妹穿的比我還像新娘。我一直安慰自己鄙漏,他們只是感情好嗤谚,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布棺蛛。 她就那樣靜靜地躺著,像睡著了一般巩步。 火紅的嫁衣襯著肌膚如雪旁赊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天椅野,我揣著相機與錄音终畅,去河邊找鬼。 笑死竟闪,一個胖子當著我的面吹牛离福,可吹牛的內容都是我干的。 我是一名探鬼主播炼蛤,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼妖爷,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了理朋?” 一聲冷哼從身側響起絮识,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嗽上,沒想到半個月后次舌,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡兽愤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年垃它,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烹看。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡国拇,死狀恐怖,靈堂內的尸體忽然破棺而出惯殊,到底是詐尸還是另有隱情酱吝,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布土思,位于F島的核電站务热,受9級特大地震影響,放射性物質發(fā)生泄漏己儒。R本人自食惡果不足惜崎岂,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望闪湾。 院中可真熱鬧冲甘,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至陶夜,卻和暖如春凛驮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背条辟。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工黔夭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人羽嫡。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓纠修,卻偏偏與公主長得像,于是被迫代替她去往敵國和親厂僧。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內容