Error in extracting values from bar chart?

烈酒焚心 提交于 2019-12-11 09:26:57

问题


d=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16]
bar_widh=0.2;
figure; 
h = bar(d,bar_widh);
for i=1:2:4
  for j=1:4
   x=d(i,j)
   y=d(i+1,j)
   figure,plot(x,y);
  end
i=i+1;
end

In this code I had plotted a bar chart and I want to extract values from bar chart. (Values are correctly extracted but only one point is plotted; not a line) But i'm getting wrong results. My aim is to plot a line between

                                 d(1,1) and d(2,1);d(3,1) and d(4,1);
                                 d(1,2) and d(2,2);d(3,2) and d(4,2);
                                 d(1,3) and d(2,3);d(3,3) and d(4,3);
                                 d(1,4) and d(2,4);d(3,4) and d(4,4);

In first figure I need 2 lines(from 1 column); in second figure I need 2 lines(from 2 column); in third figure I need 2 lines(from 3 column) and in fourth figure I need 2 lines(from 4 column). no.of figures=no.of columns

Version 2 I tried another version

d=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16]
bar_widh=0.2;
figure; 
h = bar(d,bar_widh);
saveas(h,'testfigure.fig');
clear
close all
h=hgload('testfigure.fig');
ch=get(h,'Children');
l=get(ch,'Children');
x=get(l,'Xdata');
y=get(l,'Ydata');

and i'm getting error as

Error using get
Conversion to double from cell is not possible.

Error in Untitled5 (line 10)
l=get(ch,'Children');

回答1:


d=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16];
bar_widh=0.2;
figure; 
h = bar(d,bar_widh);
figure; hold on;

for i = 1:size(d,2)
    x = [d(1,i) d(2,i)];
    y = [d(3,i) d(4,i)];
    plot(x,y);
end

To plot a line, you must make sure the parameters x and y in plot(x,y) are vectors than scalars. For example, to plot a line between P1 = [P1x, P1y] and P2 = [P2x, P2y], the paramenters should be:

x = [P1x, P2x]; y = [P1y, P2y];



来源:https://stackoverflow.com/questions/43749834/error-in-extracting-values-from-bar-chart

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!