Skip to main content

MatLab绘图命令

a=linspace(1,2,10)
plot(a,'--pr','linewidth',1.5,'MarkerEdgeColor','r','MarkerFaceColor','m','MarkerSize',10)
legend('a','Location','best')
title('a','FontName','Times New Roman','FontWeight','Bold','FontSize',16)
xlabel('T','FontName','Times New Roman','FontSize',14)
ylabel('a','FontName','Times New Roman','FontSize',14,'Rotation',0)
axis auto equal
set(gca,'FontName','Times New Roman','FontSize',14)

1.曲线线型、颜色和标记点类型
plot(X1,Y1,LineSpec, …) 通过字符串LineSpec指定曲线的线型、颜色及数据点的标记类型。
- 实线 r 红色 + 加号
-. 点划线 g 绿色 o 圆圈
-- 虚线 b 蓝色 *星号
: 点线 c 蓝绿色 . 点
m 洋红色 x 交叉符号
y 黄色 square(或s) 方格
k 黑色 diamond(或d) 菱形
w 白色 ^向上的三角形
v向下的三角形 >向左的三角形
<向右的三角形 pentagram(或p) 五边形
hexagram(或h) 六边形
线的颜色是由红绿蓝(RGB)三原色组成的,通过设定三原色的权重可以改变线的颜色,命令如下(x为横坐标,y为纵坐标):
color的域值为0—1
plot(x,y,'Color',[1 0 0]);代表红色
plot(x,y,'Color',[0 1 0]);代表绿色
plot(x,y,'Color',[0 0 1]);代表蓝色
plot(x,y,'Color',[0.3 0.8 0.9]);则是三种颜色组成的新颜色
当需要以上常用的八种以外的颜色时,只要设置颜色中RGB的值就可以得到不同的颜色。
2.设置曲线线宽、标记点大小,标记点边框颜色和标记点填充颜色等。
plot(…,’Property Name’, Property Value,)
Property Name 意义 选项
LineWidth 线宽 数值,如0.5,1等,单位为points
MarkerEdgeColor 标记点边框线条颜色 颜色字符,如’g’, ’b’等
MarkerFaceColor 标记点内部区域填充颜色 颜色字符
MarkerSize 标记点大小 数值,单位为points
例: 设置图线的线形、颜色、宽度、标记点的颜色及大小。
t=0:pi/20:pi; y=sin(4*t).*sin(t)/2;
plot(t,y,'-bs','LineWidth',2,'MarkerEdgeColor','k', 'MarkerFaceColor', 'y','MarkerSize',10);

3.坐标轴设置
范围设置:
a. axis([xmin xmax ymin ymax])设置坐标轴在指定的区间
b. axis auto 将当前绘图区的坐标轴范围设置为MATLAB自动调整的区间
c. axis manual 冻结当前坐标轴范围以后叠加绘图都在当前坐标轴范围内显示
d. axis tight 采用紧密模式设置当前坐标轴范围即一用户数据范围为坐标轴范围
比例:
a. axis equal 等比例坐标轴
b. axis square 以当前坐标轴范围为基础将坐标轴区域调整为方格形
c. axis normal 自动调整纵横轴比例使当前坐标轴范围内的图形显示达到最佳效果
范围选项和比例设置可以联合使用默认的设置为axis auto normal
axis ij :设置坐标轴的原点在左上角,i为纵坐标,j为横坐标
axis xy 使坐标轴回到直角坐标系
axis off 使坐标轴消隐
axis on 显现坐标轴
4.坐标轴刻度设置
set(gca, ’XTick’, [0 1 2]) X坐标轴刻度数据点位置
set(gca,'XTickLabel',{'a','b','c'}) X坐标轴刻度处显示的字符
set(gca,'FontName','Times New Roman','FontSize',14)设置坐标轴刻度字体名称大小
‘FontWeight’,’bold’ 加粗 ‘FontAngle’,’italic’ 斜体
对字体的设置也可以用在title, xlabel, ylabel等中
5.图例
legend('a','Location','best') 图例位置放在最佳位置
这些是Matlab help文件。后面一段是对应的翻译和说明
'North' inside plot box near top
'South' inside bottom
'East' inside right
'West' inside left
'NorthEast' inside top right (default)
'NorthWest inside top left
'SouthEast' inside bottom right
'SouthWest' inside bottom left
'NorthOutside' outside plot box near top
'SouthOutside' outside bottom
'EastOutside' outside right
'WestOutside' outside left
'NorthEastOutside' outside top right
'NorthWestOutside' outside top left
'SouthEastOutside' outside bottom right
'SouthWestOutside' outside bottom left
'Best' least conflict with data in plot
'BestOutside' least unused space outside plot
'North' 图例标识放在图顶端
'South' 图例标识放在图底端
'East' 图例标识放在图右方
'West' 图例标识放在图左方
'NorthEast' 图例标识放在图右上方默认
'NorthWest 图例标识放在图左上方
'SouthEast' 图例标识放在图右下角
'SouthWest' 图例标识放在图左下角

(以上几个都是将图例标识放在框图内)
'NorthOutside' 图例标识放在图框外侧上方
'SouthOutside' 图例标识放在图框外侧下方
'EastOutside' 图例标识放在图框外侧右方
'WestOutside' 图例标识放在图框外侧左方
'NorthEastOutside' 图例标识放在图框外侧右上方
'NorthWestOutside' 图例标识放在图框外侧左上方
'SouthEastOutside' 图例标识放在图框外侧右下方
'SouthWestOutside' 图例标识放在图框外侧左下方

(以上几个将图例标识放在框图外)
'Best' 图标标识放在图框内不与图冲突的最佳位置
'BestOutside' 图标标识放在图框外使用最小空间的最佳位置

还是用上面的例子
legend('sin','cos','location','northwest')可以将标识框放置在图的左上角
Examples:
x = 0:.2:12;
plot(x,bessel(1,x),x,bessel(2,x),x,bessel(3,x));
legend('First','Second','Third');
legend('First','Second','Third','Location','NorthEastOutside')
b = bar(rand(10,5),'stacked'); colormap(summer); hold on
x = plot(1:10,5*rand(10,1),'marker','square','markersize',12,'markeredgecolor','y','markerfacecolor',[.6 0 .6],'linestyle','-','color','r','linewidth',2); hold off
legend([b,x],'Carrots','Peas','Peppers','Green Beans','Cucumbers','Eggplant')

6.图形窗口(figure window)
(1)图形窗口的创建和选择(Creating and selecting of figure window)
figure(n):用于为当前的绘图创建图形窗口,每运行一次figure就会创建一个新的图形窗口,n表示第n个窗口,如果窗口定义了句柄,也可以用figure(h)将句柄h的窗口作为当前窗口。
clf 用于清除当前图形窗口中的内容
shg 用于显示当前图形窗口
(2)在一个图形窗口中绘制多个子图形(Drawing several subfigures in a single window)
subplot(m,n,p):把窗口分成m×n个小窗口,并把第p个窗口当作当前窗口。
例:将4 个图形显示在同一个图形窗口中。
t=0:pi/20:2*pi; [x,y]=meshgrid(t);
subplot(2,2,1); plot(sin(t),cos(t)); axis equal
subplot(2,2,2); z=sin(x)+cos(y); plot(t,z); axis([0 2*pi –2 2])
subplot(2,2,3); z=sin(x).*cos(y); plot(t,z); axis([0 2*pi –1 1])
subplot(2,2,4); z=sin(x).^2-cos(y).^2; plot(t,z); axis([0 2*pi –1 1])

(3)在一个已有的图形上绘图(Drawing a figure on the figure was existed)
hold on 在一个已有的图形上继续绘图
hold off 命令结束继续绘图
例:将peaks函数的等高线图与伪彩色画在一起。
[x,y,z]=peaks; %产生双变量数组
contour(x,y,z,20,'k') %绘制等高线
hold on
pcolor(x,y,z) %绘制伪彩色图
shading interp %表面色彩渲染
hold off


7.加注坐标轴标识和图形标题(Add axis labels and title of figure)
加注坐标轴标识xlabel(‘s’), ylabel(‘s’)
图形标题: title(‘s’)
例:加注坐标轴标示和图形标题。
t=0:pi/100:2*pi;y=sin(t);
plot(t,y)
axis([0 2*pi,-1 1])
xlabel('0 \leq \itt \rm \leq \pi','FontSize',16)
ylabel('sin(t)','FontSize',20)
title('正弦函数图形','FontName','隶书','FontSize',20)

8. 图中加注文本(Add text in the figure)
text(x,y,’字符串’)
例:在上图中加语句。
t=0:pi/100:2*pi;
y=sin(t);
plot(t,y)
axis([0 2*pi,-1 1])
xlabel('0 \leq \itt \rm \leq \pi','FontSize',16)
ylabel('sin(t)','FontSize',20)
title('正弦函数图形','FontName','隶书','FontSize',20)
text(3*pi/4,sin(3*pi/4),'\leftarrowsin(t)=0.707', 'FontSize',16)
text(pi,sin(pi),'\leftarrowsin(t)=0', 'FontSize',16)
text(5*pi/4,sin(5*pi/4),'sin(t)=-0.707\rightarrow','FontSize',16,'HorizontalAlignment','right')

句中:
leftarrow 表示加一个向左的箭头
rightarrow 表示加一个向右的箭头
HorizontalAlignment 表示右对齐水平排列
gtext('字符串'): 在图形窗口上用鼠标直接在指定的位置上加注文本。
例:
t=0:pi/100:2*pi;
y=sin(t);
plot(t,y)
axis([0 2*pi,-1 1])
xlabel('0 \leq \itt \rm \leq \pi','FontSize',16)
ylabel('sin(t)','FontSize',20)
title('正弦函数图形','FontName','隶书','FontSize',20)
gtext('MATLAB')

9. 指定TeX字符
例:在标题中指定TeX字符
t=0:pi/100:2*pi;
alpha=-0.8;
beta=15;
y=sin(beta*t).*exp(alpha*t);
plot(t,y)
title('{\itAe}^{-\it\alpha\itt}sin\it\beta{\itt}\it\alpha<<\it\beta')
xlabel('时间\mus.'),
ylabel('幅值')

在title中的字符串表现的是 Aeαt sinβt α<<β
斜体Ae 上标斜体αt 斜体βt 斜体α 斜体β
希腊字母 MatLab表示
α \alpha
β \beta
γ \gamma
θ \theta
Θ \Theta
Г \Gamma
δ \delta
Δ \Delta
ξ \xi
Ξ \Xi
η \elta
ε \epsilong
ζ \zeta
μ \miu
υ \nu
τ \tau
λ \lamda
Λ \Lamda
π \pi
Π \Pi
σ \sigma
Σ \Sigma
φ \phi
Φ \Phi
ψ \psi
Ψ \Psi
χ \chi
ω \ommiga
Ω \Ommiga
\geq
不等于 \neq
<> \gg
正负 \pm
左箭头 \leftarrow
右箭头 \rightarrow
上箭头 \uparrow
上圆圈度数 \circ
摄氏度 \circC

10 hold on/off用后导致plot后最右侧和最上侧边框消失的问题
hold on后继续写box on

在xlabel或者ylabel上使用LaTex的表示方法,如

xlabel('$\alpha$','Interpreter','LaTex')
在legend中使用LaTex的表示方法,如
h = legend('$k_{rw} 90 ^\circ C$');
set(h,'Interpreter','LaTex')

Comments

Popular posts from this blog

使用PHP Webhook方式打造Telegram Bot

一、找BotFather拿到bot token     在telegram中私聊BotFather建立自己的bot,给bot取名,名字必须要以bot结尾。建好后自己的bot就有一个唯一的token,类似下面的一串字符 164354723:AAEjT6-IyNoXjt7miD0dwa-P5VmDTtHQC8 二、确认bot响应文件的位置     在写好bot响应文件后,要把bot放在网络上的一个位置,并且这个位置必须要加密的,即以https开头的一串网址。比如响应文件的名称为telbot.php,把它放在下面这个网址的位置: https://my.webhost.com/ 164354723:AAEjT6-IyNoXjt7miD0dwa-P5VmDTtHQC8 /telbot.php 上面网址中的红色设置和bot的token一样是为了确定这个唯一的位置,当然也可以任意设置。 三、告诉Telegram响应文件的位置 Telegram用下面网址的形式来设定webhook响应方式 https://api.telegram.org/bot [myauthorization-token] /setwebhook?url= [myboturl] 按照上面的网址形式,把自己创建的bot的token以及响应文件的位置填入,然后在浏览器中运行一下即可设置成功。比如: https://api.telegram.org/bot164354723:AAEjT6-IyNoXjt7miD0dwa-P5VmDTtHQC8/setwebhook?url=https://my.webhost.com/164354723:AAEjT6-IyNoXjt7miD0dwa-P5VmDTtHQC8/telbot.php 设置成功后,页面会显示下面的内容: {"ok":true,"result":true,"description":"Webhook is already set"} 四、在Telegram中给自己的bot发消息进行验证 php响应文件例子 <?php  define('BOT_TOKEN', 'YOURBOT:TOK

MatLab中patch函数的基本用法

patch是用来构建多边形的一个基本函数。 用法一 patch(X,Y,C) patch(X,Y,Z,C) patch( 'XData' ,X, 'YData' ,Y) patch( 'XData' ,X, 'YData' ,Y, 'ZData' ,Z) 1.1 说明 patch(X,Y,C)用来构建一个或者多个可填充的多边形,其使用X和Y作为每个点的坐标值,patch将会按顺序连接每个点。如果要得到一个多边形,将X和Y设置为向量;如果要得到多个多边形,将X和Y设置为矩阵,没一列对应一个多边形。C决定多边形的颜色,可以是系统认定的字符,也可以是一个数值,也可以是RGB向量。 patch(X,Y,Z,C)用来构建三维坐标下的多边形。 patch(‘XData’,X,’YData’,Y)和patch(‘XData’,X,’YData’,Y,’ZData’,Z)的用法与patch(X,Y,C)和patch(X,Y,Z,C)的用法类似,只是不设定颜色。 1.2 例子 1.2.1 x = [ 0 1 1 0 ] ; y = [ 0 0 1 1 ] ; patch(x,y, 'red' ) x和y都是1*4的向量,表示将四个点(0,0)、(1,0)、(1,1)和(0,1)依次连接,最后闭合形成一个四边形,设定颜色为红色。 1.2.2 x2 = [ 2 5 ; 2 5 ; 8 8 ] ; y2 = [ 4 0 ; 8 2 ; 4 0 ] ; patch(x2,y2, 'green' ) x2和y2都是3*2的向量,两列表示画两个多边形。第一个多边形连接的点依次是(2,4)、(2,8)和(8,4),第二个多边形连接的点依次是(5,0)、(5,2)和(8,0),颜色设定为绿色。 1.2.3 如果上例的三角形第一个是红色,第二个是绿色,那么patch代码修改为 x2 = [ 2 5 ; 2 5 ; 8 8 ] ; y2 = [ 4 0 ; 8 2 ; 4 0 ] ; patch(x2(:, 1 ),y2(:, 1 ), 'red' ) pat

telegram中的Sci-Hub机器人,又一文献下载利器

或许你看到标题会问什么是telegram,什么是Sci-Hub?请听我一一道来。 什么是Sci-Hub Sci-Hub是一个线上 数据库 ,其上提供48,000,000篇科学学术论文和文章。网站透过“.edu”代理服务器访问相关页面,每天会上传新的论文文章。2011年,哈萨克研究生亚历珊卓·艾尔巴金(Alexandra  Elbakyan)因为研究论文成本过高,每篇论文在付费墙机制下通常需要花费30美元,而决定成立Sci-Hub。2014年,学术界开始预测网站将会发展为类似Napster的服务。不过到了2015年,学术出版社爱思唯尔向纽约地方法院提交诉讼,指控Sci-Hub已经侵犯版权。纽约地方法院在2015年10月28日仍下令Sci-Hub原本使用的网域名称“Sci-Hub.org”必须终止。爱思唯尔在法院上获得胜诉后,一群研究人员、作家和艺术家则连署一封表态支持Sci-Hub和创世纪图书馆的公开信,声称这次诉讼对于世界各地的研究人员是“重大打击”,并指出:“它同样贬低我们、作者、编辑和读者。它寄生于我们的劳动,它阻挠我们为大众服务,它阻拦我们进入。”而该计划于11月因法院命令中止后,在同一个月内便改用网域名称“.io”重新上线,并开放使用Tor浏览。2016年1月时,Sci-Hub平均每天约有200,000人访问,Sci-Hub则声称网站服务每天平均有数十万次档案请求。  Sci-Hub是目前已知第一个提供大量自动且免费的付费学术论文的网站,使用者不需要事前订阅或付款,就能够使用原本存放在付费数据库的论文文章,并提供搜寻原先出版社网站内的文件档案服务。 以上介绍来源于维基百科词条 Sci-Hub Sci-Hub网站被屡次下线,但是又通过更换域名重新上线。以下三个网址经测试可以使用:  http://www.sci-hub.bz/   http://www.sci-hub.ac/   http://www.sci-hub.cc/   广大学者将自己的文章发表至学术期刊(免费或者支付版面费),然而当需要查看其他学者的文章时还需要向出版商付费,你是不是也觉得这完全阻碍了科学文化的传播。艾尔巴金在为自己辩护时援引联合国《世界人权宣言》第二十七条所提的:“人人有权自由参加社会之文化生活,欣赏艺术,并共同襄享科学进步及其利益。”关于这个问题,另一位被称