Filter löschen
Filter löschen

Graph a scatter plot on top of a bar graph with different x- and y-axes

10 Ansichten (letzte 30 Tage)
Carson
Carson am 21 Jul. 2011
Kommentiert: Jose Vilela am 21 Okt. 2015
I need to plot a scatter plot on top of a bar graph. Each of the two plots has both a different x-axis and y-axis. I tried using the instructions for using "Multiple X- and Y-Axes" on Matlab's site to no avail. Here's the code I used:
hl1 = bar(barData', 'stacked');
xlim([0 900]);
ylim([0 1]);
ylabel('Percent of watershed land area');
ax1 = gca;
set(ax1, 'XColor', 'r', 'YColor', 'r');
ax2 = axes('Position', get(ax1, 'Position'), 'XAxisLocation', 'top', ...
'YAxisLocation', 'right', 'Color', 'none', 'XColor', 'k', 'YColor', 'k');
hl2 = scatter(POLN_PLOT, COST_PLOT, 'filled', 'Parent', ax2);
When I run the code, the first graph (bar graph) gets overwritten by the second graph (scatter plot). Both the red and black axes appear on top of one another. What I want is for the black axis to appear at the right and on the top of the plot.
I'm not experienced with using handles or properties, so I was hoping someone might be able to show me the best way to go about this. Thanks in advance!

Antworten (1)

Carson
Carson am 21 Jul. 2011
Nevermind - I figured it out myself. You just have to add a few hold() statements:
bar(barData', 'stacked');
xlim([0 900]);
ylim([0 1]);
ylabel('Percent of watershed land area');
ax1 = gca;
set(ax1, 'XColor', 'r', 'YColor', 'r');
hold(ax1, 'all'); % <--------------------------------
ax2 = axes('Position',get(ax1,'Position'),'XAxisLocation','top',...
'YAxisLocation','right','Color','none','XColor','k','YColor','k');
hold(ax2, 'all'); % <--------------------------------
scatter(POLN_PLOT, COST_PLOT, 'filled', 'Parent', ax2);
Hope this helps someone else out and saves them some time!
  4 Kommentare
Summer
Summer am 4 Sep. 2014
YOU ARE MY HERO. I've been struggling with this for hours. Thanks!

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Discrete Data Plots finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by