matplotlib 畫圖

 from matplotlib import pyplot as plt 

折線圖

fig = plt.figure(figsize=(20,10), dpi=80) 或者
fig, ax = plt.subplots(1)
plt.plot(x,y, color="red", linewidth=2.5, linestyle="-", label="sine")
plt.xlim(x1,x2)
plt.xticks(range(2,16,2))
plt.minorticks_on() ---> 加minor tick
figure.ax_joint.xaxis.set_minor_locator(ticker.MultipleLocator(0.2))
axs[1].xaxis.set_ticks([np]
axs[1].xaxis.set_ticklabels(tickla)

當(dāng)刻度太密集時谒出,使用列表的步長間隔取值
plt.xticks(x[::2])

plt.xlabel('xtitle') /plt.ylabel('ytitle')/ plt.title('title')
plt.legend(loc='upper left', frameon=False)
textstr = '\mu=%.2f\n\mathrm{median}=%.2f\n'%(mu, median)
ax.text(0.05, 0.95, textstr, transform=ax.transAxes, fontsize=14,
verticalalignment='top') 位置放在左上 text設(shè)置參考
plt.savefig('./test.png')
plt.show()

from matplotlib.ticker import MultipleLocator
ax.yaxis.set_minor_locator(MultipleLocator(0.1))

參考畫ticks

加水平線: plt.axhline(y=2,linewidth=1.5,linestyle='--',color='magenta')
加豎直線: plt.axvline(0,linestyle=‘—‘,color=‘magenta')
常用線型: - 實(shí)線 -- 虛線 -. 點(diǎn)線 : 細(xì)小的虛線
可以改變點(diǎn)型: s 方形 h 六角形 *星星 +號 d菱形 p五角形
常用顏色:b 藍(lán)色/ g 綠色/ r 紅色/ c 天藍(lán)/ m 紫紅/ y 黃色/ k 黑色/ w 白色

一條線一個顏色的畫法:
cmap = plt.get_cmap('plasma')
ax.text(1.02,0.95-i/20,'T_c={:.0f}eV'.format(Tc[i]),color=cmap(i/20),transform=ax.transAxes)
ax.plot(k,gamma[0],color=cmap(i/20.))

一個panel

fig,ax = plt.subplots(1,1,figsize=[5,4])
pm = plot2d(spt.xpsd,spt.t,spt.fnp.pi2, log=True, vmin=Evmin, vmax=Evmax,
clip=True, xlabel=r't\Omega_{e}',ylabel=r'\omega/\Omega_{e0}',ax=ax)
cax = get_cax(fig,ax, orientation='v', width=0.025)
ax.set(xlabel=r't\Omega_{e0}')

cb = plt.colorbar(pm.image, cax=cax) #, orientation='horizontal'
cb.ax.xaxis.set_ticks_position('top')
# cb.set_label(r'$\mathrm{log}_{10}(P_B)/\mathrm{max}[\mathrm{log}_{10}(P_B)]$')
cb.set_label(r'$P_B$') 

cb.ax.xaxis.set_label_position('top')

多個panel的處理

fig, axes=plt.subplots(2,2,figsize=(4,8))
plt.subplots_adjust(left=0.13, right=0.8, top=0.9, bottom=0.15,hspace=0.25,wspace=0.4)

# now we add two dashed lines 
ax0 = axes[0,1]
ax1 = axes[1,0]
x0 = ax0.get_xlim()[1]
y0 = ax0.get_ylim()[0]
x1 = ax1.get_xlim()[0]
y1 = ax1.get_ylim()[1]
_draw_connecting_line(ax0, x0, y0, ax1, x1, y1)

ax0 = axes[0,2]
ax1 = axes[1,3]
x0 = ax0.get_xlim()[0]
y0 = ax0.get_ylim()[0]
x1 = ax1.get_xlim()[1]
y1 = ax1.get_ylim()[1]
_draw_connecting_line(ax0, x0, y0, ax1, x1, y1)

# now we determine colorbar location
ax_pos_ul = axes[0,-1].get_position()
ax_pos_ll = axes[1,-1].get_position()

cb_height = ax_pos_ul.ymax-ax_pos_ll.ymin
cb_width = 0.015
hspace = 0.025

x0 = ax_pos_ll.xmax + hspace
y0 = ax_pos_ll.ymin    
x1 = x0 + cb_width

cbp = [x0, y0, cb_width, cb_height]
cax = fig.add_axes(cbp)

plt.colorbar(img, label=r'P$_B$', cax=cax)

ax=fig.add_subplot(211)
ax=axes[0,0]
每個panel 加上小標(biāo)號
labels = ['a', 'b', 'c']
for i in range(3):
ax[i].text(0.05,0.93,labels[i], color ='k', transform=ax[i].transAxes)
更改全局字號
font = {'family':'normal','weight':'normal','size':16}
matplotlib.rc('font',**font)

sublabel=['(a)','(c)','(e)','(b)','(d)','(f)']
for i in range(2):
for j in range(3):
axes[i,j].text(0.85,0.9,sublabel[3*i+j],transform=axes[i,j].transAxes,color='k',fontsize=20)

多個panel 共用一個x axis:

fig, a = plt.subplots(3,figsize = [6,10],sharex=True)
plt.subplots_adjust(left=0.16, right=0.8, top=0.9, bottom=0.15,hspace=0.3,wspace=0.4)

colorbar 相關(guān)

Colormap選取
cmap=plt.cm.jet
clb=plt.colorbar()
plt.clim([1,33])
ax1.set(xlim=[xx,xx], ylim=[xx, xx])

Colorbar 擺放位置:
fig, (ax1, ax2) = plt.subplots(ncols=2)
img1 = ax1.imshow(data)
fig.colorbar(img1, ax=ax1)
ax1.set_aspect('auto')
img2 = ax2.imshow(-data)
fig.colorbar(img2, ax=ax2)
ax2.set_aspect('auto’)
plt.tight_layout(h_pad=1)
想放在水平位置 fig.colorbar(im, cax=cax, orientation="horizontal")
Colorbar title 的位置:
clb=plt.colorbar()
Clb.ax.set_xlabel() 放在底下, clb.ax.set_ylabel() 放在側(cè)邊蹬音, clb.ax.set_title() 放在頂上

Colorbar ticks:log 軸科學(xué)計數(shù)改成普通 比如 3*10 —> 30
from matplotlib.ticker import LogFormatter
formatter = LogFormatter(10, labelOnlyBase=False)
cb = plt.colorbar(ticks=[1,5,10,20,50], format=formatter)

add_color_bar_V(p2d.image,axes[0,2],fig,label='PSD') 可參考這個函數(shù)進(jìn)行修改

多個panel 一個colorbar
pcm.set_clim([1,2000])
cb_ax = fig.add_axes([0.9, 0.1, 0.02, 0.8])
cbar = fig.colorbar(pcm, cax=cb_ax)
cbar.ax.set_ylabel('Counts’)

clb = axs[n, m].pcolormesh(t, w[:], np.log10(psd[:, :]), cmap=purula(), vmax=-2, vmin=-4)
axs[n, m].tick_params(labelsize=15)
axs[n, m].set(ylim=[0, 1])
axs[n, m].set_title(r'Z=' + '%.2f' % z, fontsize=20)
position0 = fig.add_axes([0.85, 0.1, 0.02, 0.8])
cbar = plt.colorbar(clb, cax=position0)
cbar.ax.tick_params(labelsize=18)
cbar.set_label(r'log_{10}(PSD)', fontsize=20)

legend 擺放位置 https://www.delftstack.com/zh/howto/matplotlib/how-to-place-legend-outside-of-the-plot-in-matplotlib/

散點(diǎn)圖

plt.scatter(x,y)

直方圖

d = xxx ;; 組距
num_bins = int(max(a)-min(a)/bin_width)
plt.hist(a,num_bins,normed=1) 默認(rèn)是頻數(shù)直方圖永部,加上關(guān)鍵字參數(shù)normed = 1變?yōu)轭l率分布直方圖

當(dāng)組距不均勻時: plt.hist(a,[min(a)+i*bin_width for i in range(num_bins)])

畫不同樣式的bar:histtype='stepfilled','histtype', 'barstacked',rwidth=0.8
facecolor='g',alpha=0.75

kwargs = dict(hist_kws={'alpha':0.5}, kde_kws={'linewidth':2},norm_hist=True, kde=False)
x=EMIC_bw
width=(np.nanmax(x)-np.nanmin(x))/200
bins=np.arange(np.nanmin(x),np.nanmax(x),width)
x_weight = np.ones_like(x)/float(len(x))
plt.hist(x,bins=bins,weights=x_weight,linewidth=2,color='dodgerblue',alpha=0.5,label='EMIC')## ,histtype='step'

plt.xticks(range(min(a),max(a)+d, d))
plt.grid(True, linestyle='-.', alpha=0.5) 顯示網(wǎng)格,設(shè)置透明度


其他畫圖參考

Echarts

Ploty 畫圖的github

seaborn

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市衫画,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌弥激,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異丛肮,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)习劫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門飞蛹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事拒贱。” “怎么了斜做?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵库物,是天一觀的道長诱告。 經(jīng)常有香客問我精居,道長,這世上最難降的妖魔是什么空猜? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任搜贤,我火速辦了婚禮唁影,結(jié)果婚禮上据沈,老公的妹妹穿的比我還像新娘嗜诀。我一直安慰自己,他們只是感情好拂蝎,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著捣作,像睡著了一般。 火紅的嫁衣襯著肌膚如雪也拜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機(jī)與錄音键俱,去河邊找鬼。 笑死踪央,一個胖子當(dāng)著我的面吹牛健无,可吹牛的內(nèi)容都是我干的累贤。 我是一名探鬼主播痹束,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼烛谊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起双泪,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蟆盹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體日缨,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年尸红,在試婚紗的時候發(fā)現(xiàn)自己被綠了怎爵。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鳖链。...
    茶點(diǎn)故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡狂秦,死狀恐怖裂问,靈堂內(nèi)的尸體忽然破棺而出慨菱,到底是詐尸還是另有隱情,我是刑警寧澤协饲,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布把夸,位于F島的核電站膀篮,受9級特大地震影響磅网,放射性物質(zhì)發(fā)生泄漏涧偷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望隅肥。 院中可真熱鬧,春花似錦绿语、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嘱蛋,卻和暖如春龄恋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背铣卡。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工踊谋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留轿衔,地道東北人害驹。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓瓦糕,卻偏偏與公主長得像咕娄,于是被迫代替她去往敵國和親费变。 傳聞我的和親對象是個殘疾皇子胡控,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容