如何美化MATLAB和Python畫出來的圖

如何美化MATLAB和Python畫出來的圖

寫在前面

俗話有句叫做:字不如表轿腺,表不如圖锦聊,意思就是圖可以最直觀最顯然的表達(dá)我們想要表達(dá)的信息梗劫,其升降趨勢一目了然享甸;表其次,能夠看到數(shù)值梳侨,但是想要看出變化趨勢卻很困難(完全不可能看出一個(gè)復(fù)雜的周期性變化)蛉威;最次的是文字表達(dá),可以用文字來表達(dá)其趨勢走哺、周期瓷翻、大小范圍,但是終究沒有具體的數(shù)值與更顯然割坠、更直觀的圖來的好。

話雖如此妒牙,在作圖方面彼哼,一個(gè)好看的圖能夠吸引讀者的目光,甚至嘆之妙絕——“明明一樣的數(shù)據(jù)湘今,我怎么做不出來這么好看的圖”敢朱;一個(gè)難看簡陋的圖擱誰都不想看第二眼,更何況從中分析出什么數(shù)據(jù)了摩瞎。

所以我這里想要給大家分享的就是在做數(shù)模的幾年里拴签,以及近期在實(shí)驗(yàn)室搬磚并閱讀大量文獻(xiàn)后的,一些對作圖上的想法旗们。

為了照顧到采用不同的可視化軟件的人蚓哩,這篇文章將分成兩個(gè)部分,一個(gè)是MATLAB上渴,另一個(gè)是Python岸梨。這兩個(gè)部分的差別僅在于調(diào)用函數(shù)、代碼指令的細(xì)微差別稠氮,比如說調(diào)整坐標(biāo)軸粗細(xì)曹阔,MATLAB用set(gca, 'linewidth', 1.1)而Python卻用ax.spines['bottom'].set_linewidth(2)這樣的差別。

具體我們畫好以后的圖隔披,就以這個(gè)圖作為參考赃份。

例子

如何畫好一個(gè)圖?

反面教材

我們首先來看兩個(gè)反面教材奢米,這兩個(gè)反面教材是我隨便搜“MATLAB作圖”后找到的博客或PPT上面截下來的抓韩,可以理解他們本意是僅僅教授怎么做圖纠永,并不負(fù)責(zé)怎么做好看。但是其不認(rèn)真的態(tài)度還是讓我來做反面教材了园蝠,因?yàn)樗麄兙谷皇恰?strong>直接截圖渺蒿!不是保存圖像!把MATLAB的大灰邊截下來了1胙Α茂装!”

反面教材1

首先對于反面教材1,夸張的線寬善延、耀眼的藍(lán)色線條綠色底色少态,明顯的夕陽紅配色。

反面教材2

然后反面教材2易遣,加個(gè)網(wǎng)格說明別出心裁彼妻,但是字體很難看,并且截圖就截圖吧露個(gè)大灰邊豆茫,還沒把截全侨歉。

如何避免出現(xiàn)以上這種情況?

最主要的一步:

不要截圖!揩魂!請點(diǎn)左上角“Save/保存”S牡恕!這樣子出來的圖就是白色底了火脉,而不是預(yù)覽的灰色底牵舵。

其次,我們在作圖是一定要嚴(yán)格按照以下幾點(diǎn)來規(guī)范自身:

  1. 線寬合適倦挂,默認(rèn)的太細(xì)畸颅,最好是1.1;
  2. 字體調(diào)大方援,默認(rèn)的太小没炒,最好是16;
  3. 散點(diǎn)內(nèi)部填充顏色要好看犯戏,不要刺眼窥浪,要手動(dòng)調(diào)RGB值設(shè)置顏色;
  4. 坐標(biāo)軸邊框也太細(xì)笛丙,一定要加粗到1.1漾脂;
  5. 一定要加上橫縱坐標(biāo)描述;
  6. 顯示出坐標(biāo)軸范圍要留出空隙胚鸯,不要讓圖像緊靠邊框骨稿,且上下左右空隙相等。

下面我將詳細(xì)進(jìn)行描述。

對于MATLAB的作圖細(xì)節(jié)

首先我們已經(jīng)有了幾組數(shù)據(jù)

x = linspace(0, 3*pi, 40);
y1 = sin(x);
y2 = 0.1*x-0.5;

直接畫出來是如下圖所示坦冠,所有顏色形耗、線寬都是默認(rèn)的≌藁耄看上去也還行激涤,但是未免也太“空蕩”、“簡陋”了判呕,缺少設(shè)計(jì)感倦踢。

最基礎(chǔ)的默認(rèn)圖像

所以,下面我就直接說明怎么修改了:

對于線條部分

加粗線條寬度到1.1侠草,線條顏色為黑色(切記)辱挥,加上散點(diǎn),散點(diǎn)內(nèi)部填充顏色边涕。所以加上一下代碼:

plot(x, y1, 'ok-', 'linewidth', 1.1, 'markerfacecolor', [36, 169, 225]/255)
hold on
plot(x, y2, 'ok-', 'linewidth', 1.1, 'markerfacecolor', [29, 191, 151]/255)

上面的散點(diǎn)內(nèi)部填充顏色marker face color后面跟的值是我從博客上找的好看的顏色晤碘,網(wǎng)址https://www.icoa.cn/a/512.html。一般我找顏色都是這樣子找功蜓,找到特別好看的顏色然后把他們的RGB值放上去园爷。所以三個(gè)值就分別代表red, green, blue。后面的255代表歸一化式撼,因?yàn)镽GB最高255童社。

所以目前做出來的圖就是下面這樣子,不得不說端衰,好看很多了,圖像變得更加清新甘改、美觀旅东。因?yàn)榇旨?xì)適中的線條與恰當(dāng)?shù)念伾钅軌蜃ト搜矍颉?/p>

修改線條后

但是這樣一比,坐標(biāo)軸就有點(diǎn)單調(diào)了十艾,而且右上角的圖例好小啊抵代,整體就顯得線條圖像與坐標(biāo)軸不是一個(gè)風(fēng)格的,所以下面我們就需要修改坐標(biāo)軸配置忘嫉。

修改坐標(biāo)軸

我們需要把坐標(biāo)軸加粗荤牍,字體加大,字體改成Times New Roman庆冕,讓線條不要緊靠邊框康吵,留一些“呼吸”的余地。

axis([0, 3*pi, -1.2 1.2])
set(gca, 'linewidth', 1.1, 'fontsize', 16, 'fontname', 'times')

然后就大功告成了访递!

大功告成

不過你們肯定會(huì)有一個(gè)疑問晦嵌,為什么要加大字體、加粗線條?

因?yàn)槲覀冊陔娔X上單獨(dú)看圖像與放到文章中看圖像的感覺是不一樣的惭载,在文章中旱函,線條太細(xì)會(huì)讓眼睛看起來很難受,無法直接抓住目光描滔,這個(gè)圖像就成為了背景板被忽視掉棒妨。而加粗線條就會(huì)讓整個(gè)圖像突出一些,配上好看的配色含长,就能夠直接吸引目光券腔,成為亮點(diǎn)。太粗的線條反而會(huì)讓人感覺墨水撒了一樣茎芋。

同樣的颅眶,字體一般來說需要和文章字體大小差不多,我選的這個(gè)參數(shù)是按照我的經(jīng)驗(yàn)比較萬用的田弥。

以上就是修改一幅圖涛酗,讓其變得更加好看的步驟。

所有的代碼為

clc, clear, close all
x = linspace(0, 3*pi, 40);
y1 = sin(x);
y2 = 0.1*x-0.5;
y3 = cos(x+pi/2);
figure
% 黑色實(shí)線, 圓圈標(biāo)記, 線寬1.1, 標(biāo)記內(nèi)部填充顏色從網(wǎng)上找好看的配色
plot(x, y1, 'ok-', 'linewidth', 1.1, 'markerfacecolor', [36, 169, 225]/255)
hold on
plot(x, y2, 'ok-', 'linewidth', 1.1, 'markerfacecolor', [29, 191, 151]/255)
% 設(shè)置坐標(biāo)軸范圍
axis([0, 3*pi, -1.2 1.2])
% 坐標(biāo)軸邊框線寬1.1, 坐標(biāo)軸字體與大小為Times New Roman和16
set(gca, 'linewidth', 1.1, 'fontsize', 16, 'fontname', 'times')
xlabel('Time (s)')
ylabel('Displacement (m)')
legend('sin(x)', '0.1x-0.5')

下面則是對于Python的作圖指令的介紹偷厦。

對于Python的作圖的細(xì)節(jié)

基本原則和上文中的一樣商叹,只不過對應(yīng)的操作要更麻煩一點(diǎn):

from matplotlib import pyplot as plt
import numpy as np

x = np.linspace(0, 3*np.pi, 40)
y1 = np.sin(x)
y2 = 0.1*x-0.5

plt.figure(figsize=(12.5, 10))
# 線條顏色black, 線寬2, 標(biāo)記大小13, 標(biāo)記填充顏色從網(wǎng)上找16進(jìn)制好看的顏色
plt.plot(x, y1, '-o', color='black', markersize=13, markerfacecolor='#44cef6', linewidth=2)
plt.plot(x, y2, '-o', color='black', markersize=13, markerfacecolor='#e29c45', linewidth=2)

# 字體設(shè)置: 字體名稱Times New Roman, 字體大小34
font_format = {'family':'Times New Roman', 'size':34}
plt.xlabel('Time (s)', font_format)
plt.ylabel('Displacement (m)', font_format)
# 設(shè)置坐標(biāo)軸 x范圍0~3*pi, y范圍-1.2~1.2
plt.axis([0, 3*np.pi, -1.2, 1.2])
# 橫縱坐標(biāo)上的字體大小與類型(不是xlabel, 是xticks)
plt.xticks(fontproperties='Times New Roman', size=34)
plt.yticks(fontproperties='Times New Roman', size=34)
# 整個(gè)圖像與展示框的相對位置
plt.subplots_adjust(left=0.19,right=0.94, bottom=0.13)
# 調(diào)整上下左右四個(gè)邊框的線寬為2
ax=plt.gca()
ax.spines['bottom'].set_linewidth(2)
ax.spines['left'].set_linewidth(2)
ax.spines['right'].set_linewidth(2)
ax.spines['top'].set_linewidth(2)
plt.show()

做出來的效果如下所示。

Python做的圖

總結(jié)

以上就是所有內(nèi)容只泼,作圖的美觀著實(shí)是一個(gè)很考驗(yàn)審美的問題剖笙。我現(xiàn)在看我一年前畫的圖簡直是不要再尷尬,但是那時(shí)的我看兩年前的我也是覺得很辣雞请唱,因?yàn)閷徝涝诓粩嗟刈兓诌洹Uf不定一年后再看我現(xiàn)在的作圖風(fēng)格也會(huì)覺得很難看,誰知道呢十绑?但目前為止這的確是一種比較好看的風(fēng)格了聚至,相對于普通人的作圖水平來說。

所以希望我的這篇文章對大家有所幫助本橙,如果喜歡的話麻煩來個(gè)關(guān)注扳躬,點(diǎn)個(gè)贊,加個(gè)收藏甚亭,謝謝贷币!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市亏狰,隨后出現(xiàn)的幾起案子役纹,更是在濱河造成了極大的恐慌,老刑警劉巖暇唾,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件字管,死亡現(xiàn)場離奇詭異啰挪,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)嘲叔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進(jìn)店門亡呵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人硫戈,你說我怎么就攤上這事锰什。” “怎么了丁逝?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵汁胆,是天一觀的道長。 經(jīng)常有香客問我霜幼,道長嫩码,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任罪既,我火速辦了婚禮铸题,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘琢感。我一直安慰自己丢间,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布驹针。 她就那樣靜靜地躺著烘挫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪柬甥。 梳的紋絲不亂的頭發(fā)上饮六,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天,我揣著相機(jī)與錄音苛蒲,去河邊找鬼卤橄。 笑死,一個(gè)胖子當(dāng)著我的面吹牛撤防,可吹牛的內(nèi)容都是我干的虽风。 我是一名探鬼主播棒口,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼寄月,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了无牵?” 一聲冷哼從身側(cè)響起漾肮,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎茎毁,沒想到半個(gè)月后克懊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體忱辅,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年谭溉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了墙懂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,015評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡扮念,死狀恐怖损搬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情柜与,我是刑警寧澤巧勤,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站弄匕,受9級特大地震影響颅悉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜迁匠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一剩瓶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧柒瓣,春花似錦儒搭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至磺平,卻和暖如春魂仍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拣挪。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工擦酌, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人菠劝。 一個(gè)月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓赊舶,卻偏偏與公主長得像,于是被迫代替她去往敵國和親赶诊。 傳聞我的和親對象是個(gè)殘疾皇子笼平,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評論 2 355

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