前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何让你绘制的柱状图格外与众不同?

如何让你绘制的柱状图格外与众不同?

作者头像
巴山学长
发布2020-01-14 16:09:56
1.3K0
发布2020-01-14 16:09:56
举报
文章被收录于专栏:巴山学长巴山学长

前些天有小伙伴在公众号里回复问如何绘制出五颜六色的柱状图,今天小编就来与大家说道说道。

柱状图绘制本身并不复杂,一个bar函数就可以轻松搞定,相信不少小伙伴都用过它。上一道开胃菜让大家尝尝先。

1. 纯色条形图

代码语言:javascript
复制
% 生成绘图所需要的数据
N=25
x = linspace(0,10,N)';
y = gaussmf(x,[1.8,5]);
% 生成不同的颜色
needcolor=rand(N,3);
代码语言:javascript
复制
figure(1)
bar(x,y,'b')

怎么样?So easy吧!万里长征第一步,既然想要色彩斑斓,首先就得要准备好颜色。只可惜matlab内置仅支持以下几种。

'b'

Blue

'r'

Red

'g'

Green

'c'

Cyan

'm'

Magenta

'y'

Yellow

'k'

Black

'w'

White

如果想要画出五彩缤纷的柱状图,应该怎么做呢?其实也不难,只要熟悉bar(PS:如有不知,请在命令窗口输入doc bar,然后按回车键)的相关属性就不难解决。

小伙伴们,坐稳啰,K2019次列车发车了...

2. 随机颜色的柱状图

方法1:利用facecolor属性和for循环

代码语言:javascript
复制
figure(2)
for i=1:N
    bar(x(i),y(i),8/N,'facecolor',needcolor(i,:),'EdgeColor','none')
    hold on
end
set(gca,'xTick',0:10)

方法2:使用cellfun和facecolor属性

代码语言:javascript
复制
f=@(x,y,needcolor) bar(x,y,8/N,'facecolor',needcolor,'EdgeColor','none');
figure(3)
hold on; box on
cellfun(f,num2cell(x),num2cell(y),mat2cell(needcolor,ones(N,1),3))

该方法其实跟方法1是一样的,只不过是利用了函数句柄和cellfun,把代码改成了矢量化的形式,避免了for循环。

方法3:利用CData属性

代码语言:javascript
复制
figure(4)
%  画图及属性设置
bar(x,y,'CData',needcolor,'FaceColor','flat','LineStyle','none');

注意:这里利用的是bar图的Cdata属性,可能会有低版本的MATLAB中的bar函数没有这个属性。

3. 不一样的烟火——渐变色柱状图绘制

代码语言:javascript
复制
生成渐变色
color_init=[1,0,0; 1,0.5,0; 1,1,0; 0 1 0; 0 0 1;0,1,1;1,0,1];
color_init=flipud(color_init);
[c_x,c_y]=meshgrid(1:3,1:size(color_init,1));
[c_x1,c_y1]=meshgrid(1:3,linspace(1,size(color_init,1),N));
color_interp=interp2(c_x,c_y,color_init,c_x1,c_y1);
figure(5)
%  画图及属性设置
b=bar(x,y,'FaceColor','flat','LineStyle','none');
set(b,'CData',color_interp)

以上就是今天的全部内容,初来乍到,还望各位小伙伴多多关照!如有对今日推文有疑问?,欢迎在推文下方或公众号中留言,小生定当竭诚为大家解答?

参考资料:

https://www.mathworks.com/help/matlab/ref/bar.html

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 巴山学长 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档