フィルターのクリア

Create a bar graph where the next bar starts where the previous ends

6 ビュー (過去 30 日間)
Maria Ali
Maria Ali 2021 年 12 月 31 日
コメント済み: Maria Ali 2022 年 1 月 1 日
I have a data set where I have alternatingly positive and negative values for each year. I need to plot them on a bar chart but the 2nd bar must start where the first bar ends. I cannot make it work with changing basevalue and can't find anyother option.

採用された回答

Matt J
Matt J 2021 年 12 月 31 日
編集済み: Matt J 2021 年 12 月 31 日
For example,
y = [4 2 3;
1 6 5]';
n=size(y,1);
dy=([1,-1].*y).';
yc=[0, repelem(cumsum(dy(:).'),2)];
ymin=min(yc(:));
lims=sort(reshape(yc(1:end-1),2,[]))-ymin;
ys=[lims(1,:); diff(lims)]';
h=bar(ys,'stacked','FaceColor','flat','ShowBase',0);
h(1).Visible='off';
h(2).CData(1:2:end,:)=repmat( [0 0 1] ,n,1);
yticklabels( str2double(yticklabels) +ymin + "")
  7 件のコメント
Maria Ali
Maria Ali 2022 年 1 月 1 日
well when i simply run this code it, the two mentioned lines open up a new figure. I changed the following code
h=bar(ys,'stacked','FaceColor','flat','ShowBase',0);
to
h = bar(app.Bar_tab_16, ys,'stacked','FaceColor','flat','ShowBase',0);
where app.Bar_tab_16 is the name of the axes where i am plotting my chart. But since i don't know how to change the remaining two lines so that I can add the names of the axes, it opens up a new figure and the plot is also different in app designer than simply running it in script file.
Maria Ali
Maria Ali 2022 年 1 月 1 日
It's resolved now. Thanks all.

サインインしてコメントする。

その他の回答 (1 件)

Image Analyst
Image Analyst 2021 年 12 月 31 日
I think you'll have to use the patch() function to create rectangular patches "floating" off the axis.

カテゴリ

Help Center および File Exchange2-D and 3-D Plots についてさらに検索

タグ

製品


リリース

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by