Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在一个堆叠的条形图中,每个部分的颜色不同。

在一个堆叠的条形图中,每个部分的颜色不同。
EN

Stack Overflow用户
提问于 2017-08-16 16:41:29
回答 3查看 1.5K关注 0票数 2

我下面有一个堆叠的酒吧地皮:-

这是使用以下方法生成的:

代码语言:javascript
运行
AI代码解释
复制
b = barh(1:3,rand(3,2),'stacked');

现在我有了一个3x2单元C,每个单元元素都是一个1x3RGB数组。

代码语言:javascript
运行
AI代码解释
复制
C = cell(3,2);
for i = 1:3
  for j = 1:2
    C{i,j} = rand(1,3);
  end
end

图中有6个方框和6个相应的颜色。我想在方框中填充这些指定的颜色。我想用这个方法:

代码语言:javascript
运行
AI代码解释
复制
b(1).Parent.Parent.Colormap = C;

..。但这不起作用。

有人能建议如何使用控制每个条形段颜色的能力来绘制自定义的堆叠条形图吗?我不认为修改MATALB的bar命令会有帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-08-17 11:29:21

您需要复制和操作bar (或barh)函数返回的图形对象。

bar(y, 'stacked')y中的每一列返回一个条形图对象。图形对象具有XDataYData字段,它们控制条形段的位置和大小。因为来自同一列的所有部分都共享图形对象,所以不能独立地操作颜色。

例如,如果y是2x3矩阵,则bar返回3个图形对象。每个物体都有:

  • XData,一个包含条形索引的1x2向量
  • YData,一个1x2向量,每个元素都是区段的高度。
  • FaceColor,所有这些部分共享的颜色

我的代码复制了这些图形对象,因此,与具有1x2 XDataYData字段的3个图形对象不同,还有6个具有1x1 XDataYData字段的图形对象,每个都有一个唯一的FaceColor

从正常的barbarh图开始

代码语言:javascript
运行
AI代码解释
复制
figure;
n_bars = 2;
n_sections = 3;

%Initialize the bar graph with default coloring
b = bar(rand(n_bars, n_sections), 'stacked');

现在,制作一个新的图形,用被操纵的颜色来保存情节。

代码语言:javascript
运行
AI代码解释
复制
%Make new figure with new color scheme
f = figure;
a = axes('Parent', f);

%Colors
C = rand(6, 3);

对于原始的每个图形对象,复制两个副本。

代码语言:javascript
运行
AI代码解释
复制
for jj = 1:n_sections
  %Duplicate the bar graphics object results 
  section1 = copyobj(b(jj), a);
  section2 = copyobj(b(jj), a);

  % Remove one of the bars from each section
  section1.YData(1) = 0;
  section2.YData(2) = 0;

  %Change the color
  section1.FaceColor = C(sub2ind([n_bars, n_sections], 1, jj), :);
  section2.FaceColor = C(sub2ind([n_bars, n_sections], 2, jj), :);
end

之前和之后!

票数 2
EN

Stack Overflow用户

发布于 2017-08-18 05:57:42

这样做的目的是为每个数据行创建一个单独的图表,否则我们就无法获得单个条形对象句柄。

代码语言:javascript
运行
AI代码解释
复制
ydata = rand(3,2); cdata={'r','g'; 'b','y';'c','k';'g','b'};
numplots = size(ydata,1);
h=zeros(numplots,2);
figure, hold on
for k=1:numplots,
    h(k,:) = barh(nan(size(ydata)),'stacked');
    set(h(k,1),'FaceColor',cdata{k,1});
    set(h(k,2),'FaceColor',cdata{k,2});
    tmp_ydata = get(h(k,1),'YData');
    tmp_ydata(k) = ydata(k,1); 
    set(h(k,1),'YData',tmp_ydata);
    tmp_ydata = get(h(k,2),'YData');
    tmp_ydata(k) = ydata(k,2);
    set(h(k,2),'YData',tmp_ydata);
end
hold off 

有关详细信息,请参阅MATLAB图形学上的Mike发布的“图表的高亮部分”

票数 1
EN

Stack Overflow用户

发布于 2017-08-18 10:18:57

根据塞西莉亚的回答,这是一个更普遍的解决办法。

代码语言:javascript
运行
AI代码解释
复制
n_bars = 3;
n_sections = 4;
b = barh(rand(n_bars, n_sections), 'stacked');

f = figure;
a = axes('Parent', f);
C = rand(n_bars*n_sections, 3);
for jj = 1:n_sections
    for ii=1:n_bars
        section=copyobj(b(jj), a);
        dummy=1:n_bars;
        dummy(dummy==ii)=[];
        section.YData(dummy) = 0;
        section.FaceColor = C(sub2ind([n_bars, n_sections], ii, jj), :);
    end
end

对于n_barsn_sections的任何值,这都是可行的。如果有人可以建议矢量化或更有效的实现,请这样做。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45724976

复制
相关文章
安卓MPAndroidChart绘制多层级的堆叠条形图
这次是在上一篇的基础上增加的,所以导包这些啥的就跳过了研究了一下代码,发现主要的区别就在于增加data的时候,第二个参数传递的是一个数组,然后就变成了堆叠条形图。
SingYi
2022/07/14
1.3K0
安卓MPAndroidChart绘制多层级的堆叠条形图
条形码生成软件如何连续生成不同的条形码
很多使用条形码生成软件的朋友,都知道软件可以生成条形码,但是连续生成不同条码的话,就不知道该如何操作了。如果想要连续生成不同的条形码,可以在软件中用数据库导入和序列生成两种方式来实现,这里以序列生成为例。具体操作如下:
用户5746110
2019/09/10
1.9K0
识别图中的图形形状,颜色,位置,面积,周长。
1、点击[Matlab] 2、点击[命令行窗口] 3、按<Enter>键
裴来凡
2022/05/28
1.2K0
识别图中的图形形状,颜色,位置,面积,周长。
Echarts图表:设置折线图中折线线条的颜色和折线点的颜色
series: [ { name: "总激活数", type: "line", stack: "总激活数", data: this.totalCount, itemStyle: { normal: { color: "#F29C1B", lineStyle: {
江一铭
2022/06/16
3.1K0
图表(Chart & Graph)你真的用对了吗?
工作中,我们常常会遇到各式各样的数据,例如网站性能,销售业绩,客户服务 、营销活动等数据。对于这些数据,有哪些行之有效的方法来形象化数据,挖掘数据关系,提升数据价值呢?
葡萄城控件
2022/05/09
2.5K0
图表(Chart & Graph)你真的用对了吗?
Google数据可视化团队:数据可视化指南(中文版)
数据可视化是一种以图形描绘密集和复杂信息的表现形式。数据可视化的视觉效果旨在使数据容易对比,并用它来讲故事,以此来帮助用户做出决策。
小F
2021/03/18
5.3K0
Google数据可视化团队:数据可视化指南(中文版)
如何更改ggplot2中堆积条形图中的堆积顺序
博客地址:https://www.jianshu.com/u/619b87e54936
用户1359560
2020/03/20
12.7K0
可视化图表样式使用大全
Severino Ribecca 是一位平面设计师,也是数据可视化的爱好者,他在自己的网站上收录了 60 种可视化图表样式以及它们分别适用于什么样的场景,并且推荐了相应的制作工具。
代码医生工作室
2020/02/20
9.9K0
MATLAB画图使用不同的颜色
此方法比较简单,能满足一般需要。但默认只能在7种颜色之间循环,具体的颜色可通过以下命令查看
全栈程序员站长
2022/08/31
1.4K0
MATLAB画图使用不同的颜色
60 种常用可视化图表,该怎么用?
数据可视化的爱好者Severino Ribecca,他在自己的网站上收录了 60 种可视化图表样式以及它们分别适用于什么样的场景,并且推荐了相应的制作工具。
Python研究者
2022/05/21
9.5K0
60 种常用可视化图表,该怎么用?
常用60类图表使用场景、制作工具推荐!
数据可视化的爱好者Severino Ribecca,他在自己的网站上收录了 60 种可视化图表样式以及它们分别适用于什么样的场景,并且推荐了相应的制作工具。
用户8949263
2022/05/23
9.4K0
常用60类图表使用场景、制作工具推荐!
谷歌Material Design可视化数据设计规范指南
今天为大家分享谷歌的Material Design可视化数据设计规范指南,这个规范指南基本适用所有数据图表设计,很有参考价值,建议收藏。
可以叫我才哥
2022/11/11
4K0
谷歌Material Design可视化数据设计规范指南
原来使用 Pandas 绘制图表也这么惊艳
Pandas 是一种非常流行的数据分析工具,同时它还为数据可视化提供了很好的选择。
周萝卜
2022/09/28
4.8K0
MATLAB 柱状图(Bar) 如何快速更改堆叠图的颜色
写博客的初衷是分享经验,同时是算是自己对思路和代码的整理,方便日后处理数据,应该可以帮到很多人。 我已免费分享我的心得,如果看官还有其他问题的,那么:知识付费,我的时间和经验正好可以解决你的问题。 咨询问题请添加QQ:819369354 2022年4月20日
全栈程序员站长
2022/11/02
5.6K0
MATLAB 柱状图(Bar) 如何快速更改堆叠图的颜色
数据可视化设计指南
数据可视化是一种将密集复杂数据信息以视觉图形的形式呈现。设计出来的视觉效果简化了数据,让用户分析研究比较数据变得容易以及可以更好地向领导或者团队讲述“故事”——可以帮助用户更好地做出决策。
Banber可视化云平台
2021/07/06
6.4K0
数据可视化设计指南
Android中TextView文字设置不同的颜色
在项目的过程中会遇到在一行文字中,部分功能需要不同的文字颜色来展示,下面介绍两种方式实现:
SoullessCoder
2019/08/07
10K0
Android中TextView文字设置不同的颜色
开发 | 用数据说话,R语言有哪七种可视化应用?
今天,随着数据量的不断增加,数据可视化成为将数字变成可用的信息的一个重要方式。R语言提供了一系列的已有函数和可调用的库,通过建立可视化的方式进行数据的呈现。在使用技术的方式实现可视化之前,我们可以先和AI科技评论一起看看如何选择正确的图表类型。 作者 Dikesh Jariwala是一个软件工程师,并且在Tatvic平台上编写了一些很酷很有趣的程序。他用API编写了第一版Price Discovery,AI科技评论对他所写的这篇文章做了编译,未经许可不得转载。 如何选择正确的图表类型 四种可选择的基本
AI科技评论
2018/03/09
2.4K0
开发 | 用数据说话,R语言有哪七种可视化应用?
Canvas使用beginPath()绘画不同颜色的直线
从图中可以看到,在每条直线都设置上了颜色和宽度,那么会不会画出三条不同颜色的直线呢?
Devops海洋的渔夫
2019/12/26
2.2K0
Canvas使用beginPath()绘画不同颜色的直线
《数据可视化基础》第四章:可视化图形推荐
以下部分是基于《Fundamentals of Data Visualization》学习笔记,要是有兴趣的话,可以直接看原版书籍:https://serialmentor.com/dataviz/
医学数据库百科
2020/06/29
2.6K0
python中让打印有不同的颜色
情景:在写小的脚本时,我们如果不需要输出到文件,也许只是想在终端中显示信息,这时可以尝试改变输出文字的颜色和样式,突出显示或者只是想秀一下。
py3study
2020/01/09
2.2K0

相似问题

在每个标签的堆叠条形图中设置颜色

10

在堆叠的条形图中显示每个部分的边界

13

在堆叠的条形图中制作不同颜色的条形图

12

每个标签堆叠的条形有不同的颜色?

13

R:在堆叠条形图中改变条形的颜色。

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档