bar3 Axis labels don't reflect real data

조회 수: 4 (최근 30일)
Austin
Austin 2013년 6월 17일
댓글: Eric T 2015년 3월 11일
I'm trying to plot Z bars against X and Y with more than a few data points. I would like the x and y axis labels to be the real x and y data. Using the example code below, each x and y bar should correspond to its X and Y axis data - but they don't. Plus, the tables change as I re-size the chart. I'm sure I'm just missing something simple.
Here's what I'm trying to accomplish, as shown in Excel: http://mutant.dnsalias.com/ctrx.pdf
surf() plots the correct axis, but the data points are not really connected in real life, so that plot is not really appropriate.
Here's and example:
format shortg
xAxis = sort(10*rand(20,1));
sprintf('XMin: %5f xMax: %5f', [min(xAxis) max(xAxis)])
yAxis = sort(30*rand(30,1));
sprintf('yMin: %5f yMax: %5f', [min(yAxis) max(yAxis)])
bar3(rand(20,30));
set(gca,'XTickLabel',xAxis)
set(gca,'YTickLabel',yAxis)

답변 (2개)

Tom
Tom 2013년 6월 17일
Try scaling the tick marks based on the limits you've defined:
format shortg
xAxis = sort(10*rand(20,1));
sprintf('XMin: %5f xMax: %5f', [min(xAxis) max(xAxis)])
yAxis = sort(30*rand(30,1));
sprintf('yMin: %5f yMax: %5f', [min(yAxis) max(yAxis)])
bar3(rand(20,30));
tick = get(gca,{'XTick','YTick'});
x = linspace(min(xAxis),max(xAxis),length(tick{1}));
y = linspace(min(yAxis),max(yAxis),length(tick{2}));
set(gca,'XTickLabel',x)
set(gca,'YTickLabel',y)
  댓글 수: 2
Austin
Austin 2013년 6월 17일
Works better - but is there a way to label with the "exact" values? Take a look at the linked excel chart. That is exactly what I'm trying to accomplish in Matlab.
Thx
Eric T
Eric T 2015년 3월 11일
Yes, the above isn't really an answer it doesn't let you set the actual x and y values, but only their appearance.

댓글을 달려면 로그인하십시오.


Madison
Madison 2014년 2월 26일
This was really helpful. Thanks!

카테고리

Help CenterFile Exchange에서 2-D and 3-D Plots에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by