亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

如何美化MATLAB和Python畫(huà)出來(lái)的圖

系統(tǒng) 1900 0

如何美化MATLAB和Python畫(huà)出來(lái)的圖

寫(xiě)在前面

俗話有句叫做:字不如表,表不如圖,意思就是圖可以最直觀最顯然的表達(dá)我們想要表達(dá)的信息,其升降趨勢(shì)一目了然;表其次,能夠看到數(shù)值,但是想要看出變化趨勢(shì)卻很困難(完全不可能看出一個(gè)復(fù)雜的周期性變化);最次的是文字表達(dá),可以用文字來(lái)表達(dá)其趨勢(shì)、周期、大小范圍,但是終究沒(méi)有具體的數(shù)值與更顯然、更直觀的圖來(lái)的好。

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

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

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

具體我們畫(huà)好以后的圖,就以這個(gè)圖作為參考。

如何美化MATLAB和Python畫(huà)出來(lái)的圖_第1張圖片

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

反面教材

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

如何美化MATLAB和Python畫(huà)出來(lái)的圖_第2張圖片

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

如何美化MATLAB和Python畫(huà)出來(lái)的圖_第3張圖片

然后反面教材2,加個(gè)網(wǎng)格說(shuō)明別出心裁,但是字體很難看,并且截圖就截圖吧露個(gè)大灰邊,還沒(méi)把截全。

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

最主要的一步:

**不要截圖!!**請(qǐng)點(diǎn)左上角“Save/保存”!!這樣子出來(lái)的圖就是白色底了,而不是預(yù)覽的灰色底。

其次,我們?cè)谧鲌D是一定要嚴(yán)格按照以下幾點(diǎn)來(lái)規(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)行描述。

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

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

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

            
          

直接畫(huà)出來(lái)是如下圖所示,所有顏色、線寬都是默認(rèn)的。看上去也還行,但是未免也太“空蕩”、“簡(jiǎn)陋”了,缺少設(shè)計(jì)感。

如何美化MATLAB和Python畫(huà)出來(lái)的圖_第4張圖片

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

對(duì)于線條部分

加粗線條寬度到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。

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

如何美化MATLAB和Python畫(huà)出來(lái)的圖_第5張圖片

但是這樣一比,坐標(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')

            
          

然后就大功告成了!

如何美化MATLAB和Python畫(huà)出來(lái)的圖_第6張圖片

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

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

同樣的,字體一般來(lái)說(shuō)需要和文章字體大小差不多,我選的這個(gè)參數(shù)是按照我的經(jīng)驗(yàn)比較萬(wà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)軸字體與大小為T(mén)imes 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')

            
          

下面則是對(duì)于Python的作圖指令的介紹。

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

基本原則和上文中的一樣,只不過(guò)對(duì)應(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è)置: 字體名稱(chēng)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)上的字體大小與類(lèi)型(不是xlabel, 是xticks)
              
              
plt
              
                .
              
              xticks
              
                (
              
              fontproperties
              
                =
              
              
                'Times New Roman'
              
              
                ,
              
               size
              
                =
              
              
                34
              
              
                )
              
              
plt
              
                .
              
              yticks
              
                (
              
              fontproperties
              
                =
              
              
                'Times New Roman'
              
              
                ,
              
               size
              
                =
              
              
                34
              
              
                )
              
              
                # 整個(gè)圖像與展示框的相對(duì)位置
              
              
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
              
                (
              
              
                )
              
            
          

做出來(lái)的效果如下所示。

如何美化MATLAB和Python畫(huà)出來(lái)的圖_第7張圖片

總結(jié)

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

所以希望我的這篇文章對(duì)大家有所幫助,如果喜歡的話麻煩來(lái)個(gè)關(guān)注,點(diǎn)個(gè)贊,加個(gè)收藏,謝謝!
很考驗(yàn)審美的問(wèn)題。我現(xiàn)在看我一年前畫(huà)的圖簡(jiǎn)直是不要再尷尬,但是那時(shí)的我看兩年前的我也是覺(jué)得很辣雞,因?yàn)閷徝涝诓粩嗟刈兓Uf(shuō)不定一年后再看我現(xiàn)在的作圖風(fēng)格也會(huì)覺(jué)得很難看,誰(shuí)知道呢?但目前為止這的確是一種比較好看的風(fēng)格了,相對(duì)于普通人的作圖水平來(lái)說(shuō)。

所以希望我的這篇文章對(duì)大家有所幫助,如果喜歡的話麻煩來(lái)個(gè)關(guān)注,點(diǎn)個(gè)贊,加個(gè)收藏,謝謝!


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 快播视频在线 | 天天操女人 | 国产亚洲精品线观看77 | 美女被爆羞羞视频网站视频 | 在线欧美激情 | 久久久久欧美精品网站 | 久久美剧 | 久久久久精彩视频 | 中国欧美一级毛片免费 | 四虎影院海外永久 | 美女私人影院 | 中文字幕精品1在线 | 久操成人 | 99九九成人免费视频精品 | 四虎最新免费网址 | 色老头福影院韩国激情影院 | 久青草国产手机视频免费观看 | 欧美性天天影院欧美狂野 | 天天做天天爱天天爽综合网 | 欧美整片在线观看 | 在线观看日韩一区 | 国产成人精品亚洲日本在线 | 亚洲国产高清视频 | 日韩国产欧美一区二区三区在线 | 这里只有精品首页 | 91国内精品久久久久怡红院 | 久久亚洲国产成人精品性色 | 欧美日日射 | 日本不卡在线观看 | 性大特级毛片视频 | 亚洲精品乱码久久久久久蜜桃欧美 | 婷婷色婷婷 | 久久综合九色综合国产 | 久久精品国产久精国产果冻传媒 | 久99re视频9在线观看 | 九九热视频免费 | 成人爱爱爱欧美日本视频 | 久久香蕉综合精品国产 | 91精品国产91久久久久久麻豆 | 国产萝控精品福利视频免费 | 成人毛片免费看 |