示例
之前出过一期炫酷绘图背景的代码,但是有几个问题:
- 老版本无法使用,需要比较新的才能支撑我的花里胡哨的写法,大体描述应该算内含匿名函数及回调函数的不定参数列表的结构体函数。。。
- 仅仅修饰背景,直线、散点等图形对象的属性还需要自己修饰。
- 每次都要运行一遍工具函数太麻烦。
那么这篇文章一次性全解决!
正文 思路(可略过)我们随便写一个画折线的代码,运行效果如下:
t=0.01:0.01:3*pi;
plot(t,cos(t)./(1+t))
hold on
plot(t,sin(t)./(1+t))
plot(t,cos(t+pi/2)./(1+t+pi/2))
plot(t,cos(t+pi)./(1+t+pi))
legend
但如果我们随便在一个m文件
或者命令行窗口
运行一下这一句:
set(groot,'defaultLineLineWidth',2)
那么之后只要用plot
或者line
函数画图且不设置线宽的话,那么画出来的线条都是加粗,粗细为2的,之前折线图绘制代码一行不动直接运行效果:
这就是直接对根图形对象(MATLAB最底层的图形对象)设置默认值,我们来看’defaultLineLineWidth’实际上就是
- default + Line + LineWidth
就是设置线条对象(Line),的宽度(LineWidth)的默认值(default),非常简单。同理我如果想要每次画图背景都是黑色的只需要运行一句:
set(groot,'defaultAxesColor',[0,0,0])
以后画图背景都是黑的。
工具函数介绍于是我写了一个可以实现连基本图形对象带背景一起修饰的函数selfGrootDefault(theme)
工具函数过长将放在最后,以下先说明一下用法:
比如我在一个m文件
或者命令行窗口
运行一下:
selfGrootDefault(4)
或者:
selfGrootDefault('dark2')
上面这两行都是指同一种修饰方法,(为了方便每种风格都设置了一个编号,可以直接使用编号来调用),之后再随便写点函数画点图,效果就完全不是很直的原版绘图:
surf(peaks)
set(gca,'Projection','perspective')
view(-37,42)
y=[2 2 3; 2 5 6; 2 8 9; 2 11 12];
bar(y)
想要变回默认设置只需要运行
selfGrootDefault(0)
此时完全一样的代码再次运行画出来就是原版绘图:
未修饰基本绘制效果:
subplot(2,2,1)
t=0.01:0.01:3*pi;
plot(t,cos(t)./(1+t))
hold on
plot(t,sin(t)./(1+t))
plot(t,cos(t+pi/2)./(1+t+pi/2))
plot(t,cos(t+pi)./(1+t+pi))
legend
subplot(2,2,2)
axis([0,50,0,50,-10,10])
xticks(0:10:50)
yticks(0:10:50)
zticks(-10:5:10)
hold on
surf(peaks)
set(gca,'Projection','perspective')
view(-37,42)
subplot(2,2,3)
t=linspace(pi/100,4*pi,500);
y1=cos(t).^2;
y2=sin(t).^2./t;
hold on
area(y1)
area(y2)
subplot(2,2,4)
y=[2 2 3; 2 5 6; 2 8 9; 2 11 12];
bar(y)
下面的数值就代表了代码
selfGrootDefault(n)
中的n是几
1 / ‘gbase’
2 / ‘gbase2’
3 / ‘dark’
4 / ‘dark2’
5 / ‘ggray2’
6 / ‘economist’
7 / ‘wsj’
function selfGrootDefault(theme)
if nargin
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?