matlab plot归一化线宽
时间: 2023-10-31 13:04:53 浏览: 120
在 MATLAB 中,可以通过使用 `LineWidth` 属性来设置绘图中的线宽。要进行归一化处理,可以将 `LineWidth` 值除以图形对象的宽度或高度。下面是一个示例代码:
```matlab
% 创建一个简单的图形
x = 1:10;
y = sin(x);
plot(x, y);
% 获取当前图形对象句柄
h = gca;
% 归一化线宽
lineWidth = 2; % 设置线宽为2
normalizedLineWidth = lineWidth / h.Position(3); % 除以图形对象的宽度
% 设置归一化线宽
set(h.Children, 'LineWidth', normalizedLineWidth);
```
在上面的示例中,首先创建了一个简单的图形,并获取了当前图形对象的句柄 `h`。然后,通过设置 `lineWidth` 的值为2(这是你想要的线宽),并将其除以图形对象的宽度 `h.Position(3)` 来获得归一化线宽 `normalizedLineWidth`。最后,通过使用 `set` 函数,将归一化线宽应用于图形对象的子对象(即曲线)。
相关问题
解释下段matlab代码 %箱梁几何外形 BoxGirder=load('BoxGirder1.txt','-ASCII'); BoxGirder1=[BoxGirder(1:7,1),BoxGirder(1:7,2)]; BoxGirder2=[BoxGirder(8:12,1),BoxGirder(8:12,2)]; BoxGirder3=[BoxGirder(13:19,1),BoxGirder(13:19,2)]; BoxGirder4=[BoxGirder(20:24,1),BoxGirder(20:24,2)]; hold on; plot(BoxGirder1(:,1),BoxGirder1(:,2),'k','LineWidth',2); plot(BoxGirder2(:,1),BoxGirder2(:,2),'k','LineWidth',2); plot(BoxGirder3(:,1),BoxGirder3(:,2),'k','LineWidth',2); plot(BoxGirder4(:,1),BoxGirder4(:,2),'k','LineWidth',2); axis equal; % %桥面测压点分布图 PressPointFig=load('PressPointFig1.txt','-ASCII'); for i=1:length(PressPointFig)/2 plot([PressPointFig((i-1)*2+1,1),PressPointFig((i-1)*2+2,1)],[PressPointFig((i-1)*2+1,2),PressPointFig((i-1)*2+2,2)],'k','LineWidth',1.5); end hold on; %风向标 annotation('arrow',[0.99 0.89],[0.68 0.68],'LineWidth',1,'HeadStyle','plain','HeadLength',8,'HeadWidth',4); text(max(BoxGirder(:,1))*1.17,10,'Wind','FontSize',9); xlim([-275 350]); ylim([-130 60]); axis off; set(gcf,'unit','centimeters','position',[15,10,14,4.256]) set(gca,'position',[0,0,1,1]) % Position为4元素默认归一化向量 % 绘制图例说明 text(-250,-92,'VIV stage: Beginning VIV Ascent Extreme Descent Ending VIV','FontSize',9); text(-216,-115,'U/fB: 0.99 1.04 1.21 1.32 1.39','FontSize',9);
这段代码主要是在MATLAB中绘制了一个桥梁的几何外形图、桥面测压点分布图和风向标,并添加了图例说明。
1. 首先,使用`load`函数从文件'BoxGirder1.txt'中加载桥梁的几何外形数据,存储在`BoxGirder`矩阵中。
2. 将`BoxGirder`矩阵的部分行提取出来,分别存储在`BoxGirder1`、`BoxGirder2`、`BoxGirder3`和`BoxGirder4`矩阵中,用于绘制不同部分的桥梁几何外形。
3. 使用`plot`函数绘制桥梁的几何外形,分别使用不同的颜色、线宽和样式进行绘制。
4. 使用`axis equal`函数设置坐标轴的比例为相等,使图形显示为正方形。
5. 使用`load`函数从文件'PressPointFig1.txt'中加载桥面测压点分布图的数据,存储在`PressPointFig`矩阵中。
6. 使用循环遍历`PressPointFig`矩阵的每一行,并使用`plot`函数绘制桥面测压点之间的连线。
7. 使用`annotation`函数添加一个箭头表示风向,并使用`text`函数添加文本标签。
8. 使用`xlim`和`ylim`函数设置坐标轴的范围。
9. 使用`axis off`函数关闭坐标轴的显示。
10. 使用`set`函数设置图形的大小和位置。
11. 使用`text`函数在图形中添加图例说明。
总体来说,这段代码的功能是绘制桥梁的几何外形图、桥面测压点分布图和风向标,并添加图例说明。
解释下段matlab代码 PresPoint=CodeMap(1:PressNum,5:6); DrawPosition=zeros(PressNum,2); LineStyle={':','--','-','-.',':'}; LineColor={'r','c','b','g','m'}; LineWidth=[1.2,1.2,1.2,1.2,1.2]; Ratio1=[16,16,16,16,16]; figure(1);%创建图窗窗口 DrawBoxGirder1 for i=1:5 draw1(PressCoeff(:,2*i-1)*-1,Ratio1(1,i),BoxGirder,PressNum,PresPoint,DrawPosition,LineStyle{i},LineColor{i},LineWidth(i)) end % 绘制比例尺 plot([-224 -208],[-75 -75],'linewidth',1.5,'Color','k') plot([-224 -224],[-75 -69],'linewidth',1.5,'Color','k') plot([-208 -208],[-75 -69],'linewidth',1.5,'Color','k') text(-220,-55,'1','FontSize',9); % 显示图例 h1=findobj('Color','r'); h2=findobj('Color','c'); h3=findobj('Color','b'); h4=findobj('Color','g'); h5=findobj('Color','m'); legend1=legend([h1(1),h2(1),h3(1),h4(1),h5(1)],'','','','',''); set(legend1,'Orientation','horizontal','Position',[0.32 0.27 0.4 0.05]); % Position为4元素默认归一化向量[left,bottom, width, height] legend boxoff % 测点编号 iPointID = [1 15 18 27 35 38 42 43 57 60 69 77 80 84]; PointNumx = [-56 -221 -240 -152 -67 -27 -27 46 217 225 137 51 10 10]; PointNumy = [12 6 -25 -20 -53 -15 15 40 35 -16 -13 -53 -15 15]; for i=1:length(iPointID) TextNum=num2str(iPointID(i)); text(PointNumx(i),PointNumy(i),TextNum,'FontSize',9); end % 测点区域编号 regionID = {'A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' 'K' 'L'}; regionNumx=[-132 -245 -190 -96 -67 -25 108 237 190 91 55 14]; regionNumy=[9 14 -8 -20 -18 0 9 16 -27 -20 -18 0]; for i=1:length(regionID) TextNum=regionID{i}; text(regionNumx(i),regionNumy(i),TextNum,'FontSize',9); end
这段代码的功能是在Matlab中绘制一个图形,具体绘制了以下内容:
1. 创建图窗窗口(figure(1))
2. 调用函数DrawBoxGirder1绘制一个箱形梁
3. 利用循环绘制5条曲线,每条曲线使用不同的线型、线色和线宽。其中,绘制曲线的函数是draw1,传入的参数包括PressCoeff矩阵、Ratio1矩阵、BoxGirder矩阵、PressNum、PresPoint矩阵、DrawPosition矩阵以及线型、线色和线宽信息。
4. 绘制比例尺,使用plot函数绘制一条直线和两条竖线,并在其中一条竖线上添加文本标注。
5. 显示图例,根据绘制的曲线的颜色找到相应的图例对象,并利用legend函数创建图例,并设置图例的位置和方向。
6. 绘制测点编号,利用循环遍历测点的编号和坐标,并利用text函数在相应的位置上添加文本标注。
7. 绘制测点区域编号,利用循环遍历区域编号和坐标,并利用text函数在相应的位置上添加文本标注。
总的来说,这段代码用于在Matlab中绘制一个图形,并在图中添加比例尺、图例、测点编号和区域编号等信息。具体的绘制样式和位置是根据提供的数据和参数来确定的。
阅读全文