Matlab进阶绘图第53期—带填充纹理的单组多色柱状图

在之前的文章中,分享过Matlab带填充纹理的单组柱状图:

进一步,本期使用Kesh Ikuma制作的hatchfill2工具(Matlab Central, 2023)进行带填充纹理的单组多色柱状图的绘制,先来看一下成品效果:

特别提示:本期内容『数据+代码』已上传资源群中,加群的朋友请自行下载。有需要的朋友可以关注同名公号【阿昆的科研日常】,后台回复关键词【绘图桶】查看加入方式


1. 数据准备

此部分主要是读取原始数据并初始化绘图参数

% 读取数据load data.mat% 初始化参数X = x;Y = dataset;

2. 颜色定义

作图不配色就好比做菜不放盐,总让人感觉少些味道。

但颜色搭配比较考验个人审美,需要多加尝试。

这里直接使用TheColor配色工具中的SCI权威配色库

map = TheColor('sci',2064,'map',10);map = flipud(map);C1 = map(1,1:3);C2 = map(2,1:3);C3 = map(3,1:3);C4 = map(6,1:3);

3. 带填充纹理的单组多色柱状图绘制

调用‘bar’和‘hatchfill2’命令,绘制初始带填充纹理的单组多色柱状图

for i = 1:4    GO(i) = bar(X(i),Y(i),0.6,'EdgeColor','k','LineWidth',1);    GO(i).ShowBaseLine = 'off';endhatchfill2(GO(1,1),'cross','HatchAngle',45,'HatchDensity',40,'HatchColor','k');hatchfill2(GO(1,2),'single','HatchAngle',45,'HatchDensity',40,'HatchColor','k');hatchfill2(GO(1,3),'single','HatchAngle',0,'HatchDensity',40,'HatchColor','k');hatchfill2(GO(1,4),'single','HatchAngle',-45,'HatchDensity',40,'HatchColor','k');hTitle = title('Texture filled bar chart with color');hXLabel = xlabel('Samples');hYLabel = ylabel('RMSE (m)');

然后再添加一些细节修饰,并输出保存:

以上。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在MATLAB中,可以使用填充纹理来为柱添加样式和可视效果。填充纹理可以是颜、线条或者像。 对于一个简单的柱,可以使用"bar"函数来创建。下面是如何为柱添加填充纹理的步骤: 1. 首先,创建一个包含柱数据的向量,例如:x = [1, 2, 3, 4, 5]。 2. 然后,使用"bar"函数绘制柱:bar(x)。 3. 接下来,用"colormap"函数定义填充。例如,可以使用"autumn"或者"cool"等内置的颜映射。 4. 最后,使用"colormap"函数来为柱填充纹理:colormap('cool')。 另外,如果想要为柱添加线条纹理,可以使用"LineStyle"参数。例如,可以将线条设置为点线条:bar(x,'LineStyle',':')。 如果希望为柱添加纹理,可以使用"bar3"函数来绘制三维的柱,并使用"texturemap"函数来加载和应用纹理。通过将像赋值给"cdata"属性,可以将像应用到每个柱体上。 总的来说,MATLAB提供了一系列方法来为柱添加填充纹理,包括颜、线条和像。可以根据个人需求选择适合的方法,以提升柱的可视效果。 ### 回答2: 在MATLAB中,可以使用形对象的属性来为柱添加填充纹理。下面是一种方法: 首先,创建柱并设置其属性,例如: ```matlab x = 1:10; % 柱的x坐标 y = rand(1,10); % 柱的高度 bar(x, y); % 创建柱 ``` 然后,使用“获得形句柄”函数(`gca`)获取柱形句柄,然后使用形句柄的属性填充纹理设置。例如: ```matlab h = gca; % 获取形句柄 % 设置填充纹理 h.Children.FaceColor = 'flat'; % 设置柱填充为“flat”,表示使用每个柱的颜 h.Children.FaceTexture = 'hatch'; % 设置柱填充纹理类型为“hatch”(其他选项是“diag”和“cross”) h.Children.CDataMapping = 'scaled'; % 设置颜数据映射为“scaled”,表示每个值通过颜映射来确定颜 ``` 通过上述代码,我们将柱填充设置为每个柱子的颜填充纹理类型为“hatch”,并且将颜数据映射为“scaled”。 然后,我们可以再次运行`bar`函数来更新柱形,以便看到填充纹理的效果。 总结:要在MATLAB中为柱添加填充纹理,我们需要获取柱子形的句柄,并设置其属性来定义填充填充纹理类型和颜数据映射。 ### 回答3: 在MATLAB中创建柱时,可以通过设置柱填充属性来添加纹理效果。填充纹理可以增强数据的可视化效果和可读性。 要使用填充纹理,首先我们需要创建一个柱对象。可以使用bar函数创建柱对象,例如:bar(x, y)。在这里,x是柱的x轴位置,y是柱的高度。接下来,可以使用set函数设置柱填充属性。常见的填充属性包括FaceColor和FaceAlpha。 对于填充纹理,FaceColor属性可以设置为一个纹理矩阵。纹理矩阵通常是一个M x N的矩阵,其中M是柱的数量,N是每个柱纹理长度。可以使用灰度像或彩像作为纹理矩阵。例如,可以使用imread函数加载一幅像,并将该像的灰度矩阵作为柱填充纹理。 同时,FaceAlpha属性用于设置填充纹理的透明度。透明度设置为1表示完全不透明,设置为0表示完全透明。可以通过调整透明度来控制填充纹理的可视化效果。 下面是一个使用纹理填充的示例代码: ```matlab x = 1:5; y = [45 78 101 63 92]; figure; bar(x, y); % 加载纹理像 texture = imread('texture.png'); % 设置填充纹理属性 set(gca, 'Color', 'none'); set(bar(x, y), 'FaceColor', 'texturemap', 'CData', texture, 'FaceAlpha', 0.8); % 添加标题和轴标签 title('纹理填充的柱'); xlabel('柱位置'); ylabel('柱高度'); % 设置坐标轴范围 xlim([0.5 5.5]); ylim([0 max(y)+10]); % 设置坐标轴刻度 xticks(x); ``` 在这个示例中,我们加载了一幅名为texture.png的像作为填充纹理,并将其应用于柱。我们还设置了填充纹理的透明度为0.8,使得柱填充纹理可以部分透明地显示。最后,我们还添加了标题、轴标签以及限制了坐标轴的范围和刻度。 通过设置填充纹理属性,我们可以在MATLAB中创建具有纹理填充的柱,从而增强数据的可视化效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值