Matlab繪制酷炫坐標(biāo)區(qū)域的方法詳解
寫了一個(gè)能讓坐標(biāo)區(qū)域變得很炫酷的修飾函數(shù):
同時(shí)想到了一個(gè)很有意思的把函數(shù)存儲(chǔ)進(jìn)mat文件的方法,方法就不細(xì)講了,大家自行點(diǎn)開(kāi).mat文件能夠很輕松的理解原理(大概),
使用方式
首先說(shuō)明一下函數(shù)咋用:假設(shè)編寫了如下函數(shù):
t=0:0.35:3*pi; plot(t,sin(t),'Marker','d','LineWidth',2,'Color',[102,194,166]./255) hold on plot(t,cos(t./2),'Marker','o','LineWidth',2,'Color',[252,140,97]./255) plot(t,t,'Marker','^','LineWidth',2,'Color',[140,161,204]./255)

在最后一行調(diào)用工具函數(shù)進(jìn)行修飾,例如:
prettyAxes().ggray2()
或者:
prettyAxes(gca).ggray2()
修飾效果:

其他炫酷的背景
prettyAxes().dark()

prettyAxes().dark2()

prettyAxes().economist()

prettyAxes().gbase()

prettyAxes().gbase2()

prettyAxes().ggray()

prettyAxes().ggray2()

prettyAxes().wsj()

目前只有這些主題,之后可能會(huì)更新.mat文件,請(qǐng)使用如下命令獲取可用主題列表:
prettyAxes().theme()
該命令會(huì)返回可用主題的函數(shù)名:
dark dark2 economist gbase gbase2 ggray ggray2 wsj
注意事項(xiàng)
對(duì)于dark,dark2,economist,wsj這幾種風(fēng)格,其背景色并不是白色,一般情況下保存圖片圖窗的背景會(huì)是默認(rèn)白色,即下圖這樣:

想要連figure窗口的背景顏色一起保存需要設(shè)置figure窗口的InvertHardcopy屬性為'off',本函數(shù)已經(jīng)設(shè)置好了這個(gè)屬性,因此直接點(diǎn)擊如下按鈕保存即可:

另外當(dāng)文件解壓完成后后,將當(dāng)前文件夾添加到搜索路徑可以在任意文件夾使用該工具函數(shù):

代碼展示及mat文件獲取
完整代碼其實(shí)沒(méi)啥東西,但還是展示一下吧,大部分信息都存儲(chǔ)在.mat文件,完整代碼及.mat文件請(qǐng)公眾號(hào)后臺(tái)回復(fù)關(guān)鍵詞:PAX
完整代碼展示:
function PAX=prettyAxes(ax)
% @author:slandarer
% ==================================
% 展示所有可選axes主題
% prettyAxes().theme()
% ----------------------------------
% prettyAxes(ax).dark()
% prettyAxes().ggray()
if nargin<1
ax=[];
end
% 從mat文件中讀取函數(shù)集合
axesTheme=load('axesTheme.mat');
axesTheme=axesTheme.theme;
% 結(jié)構(gòu)體函數(shù)構(gòu)造
for L=1:length(axesTheme.List)
PAX.(axesTheme.List{L})=@()setAxesTheme(ax,axesTheme,axesTheme.List{L});
end
PAX.theme=@()showAxesTheme(axesTheme);
% =========================================================================
% 坐標(biāo)區(qū)域修飾基礎(chǔ)函數(shù)
function setAxesTheme(tAxes,axesTheme,Name)
ax=tAxes;
if isempty(ax)
ax=gca;
end
% 讀取函數(shù)信息
sli=0;slii=0;
tBaseStr=axesTheme.(Name);
tBaseFunc=axesTheme.([Name,'_F']);
eval([tBaseStr{:}])
if ~isempty(tBaseFunc)
% 設(shè)置鼠標(biāo)移動(dòng)回調(diào)
set(ax.Parent,'WindowButtonMotionFcn',@bt_move_axes);
end
% 鼠標(biāo)移動(dòng)回調(diào)函數(shù)
function bt_move_axes(~,~)
eval([tBaseFunc{:}])
end
end
% -------------------------------------------------------------------------
% 輸出可用風(fēng)格列表函數(shù)
function showAxesTheme(axesTheme)
for i=1:length(axesTheme.List)
fprintf('%s ',axesTheme.List{i})
end
fprintf('\r\n');
end
end到此這篇關(guān)于Matlab繪制酷炫坐標(biāo)區(qū)域的方法詳解的文章就介紹到這了,更多相關(guān)Matlab坐標(biāo)區(qū)域內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++基于Boost庫(kù)實(shí)現(xiàn)命令行解析
Boost庫(kù)中默認(rèn)自帶了一個(gè)功能強(qiáng)大的命令行參數(shù)解析器,以往我都是自己實(shí)現(xiàn)參數(shù)解析的,今天偶爾發(fā)現(xiàn)這個(gè)好東西,就來(lái)總結(jié)一下參數(shù)解析的基本用法,該庫(kù)需要引入program_options.hpp頭文件,即可使用了2021-06-06
C/C++靜態(tài)類和this指針詳解及實(shí)例代碼
這篇文章主要介紹了 C/C++靜態(tài)類和this指針詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-02-02
基于C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的掃雷游戲
windows自帶的游戲《掃雷》是陪伴了無(wú)數(shù)人的經(jīng)典游戲,本文將利用C語(yǔ)言實(shí)現(xiàn)這一經(jīng)典的游戲,文中的示例代碼講解詳細(xì),感興趣的可以學(xué)習(xí)一下2022-05-05
利用Qt實(shí)現(xiàn)可擴(kuò)展對(duì)話框的示例代碼
可擴(kuò)展對(duì)話框通常用于用戶對(duì)界面有不同要求的場(chǎng)合。當(dāng)供高級(jí)用戶使用或需要更多信息時(shí),可通過(guò)某種方式的切換顯示完整對(duì)話窗體(擴(kuò)展窗體)。本文將用Qt實(shí)現(xiàn)可擴(kuò)展對(duì)話框,需要的可以參考一下2022-06-06
C語(yǔ)言循環(huán)語(yǔ)句之重復(fù)執(zhí)行特定的代碼塊
在C語(yǔ)言中分支和循環(huán)語(yǔ)句是實(shí)現(xiàn)條件執(zhí)行和重復(fù)執(zhí)行的重要工具,下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言循環(huán)語(yǔ)句之重復(fù)執(zhí)行特定的代碼塊的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
C語(yǔ)言函數(shù)指針與回調(diào)函數(shù)的實(shí)現(xiàn)
本文主要介紹了C語(yǔ)言函數(shù)指針與回調(diào)函數(shù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05

