Hello,
I would like to overlay 5 histograms on one single chart with different colors and legends such that they could be distinguishable, but I am not able to do that. I appreciate any suggestions!
I have 5 data sets called "Dist_a", "Dist_b", "Dist_c", "Dist_d", "Dist_e", where I would like each histogram has a different color with its associated legend of {"a","b","c","d"}. I can plot them one by one as follows, but I would like to have all of them on a single chart (or window). Thanks!
Here is my code for a single histogram:
struct plotControl myPlot;
myPlot = plotGetDefaults("xy");plotCanvasSize("px", 600 | 600);
plotSetTextInterpreter(&myPlot, "LaTeX", "legend");
plotSetLegendFont(&myPlot, "arial", 14);
plotSetLegendBkd(&myPlot, 0);
plotSetTitle(&myPlot, "Case A", "Arial", 16);
plotSetXLabel(&myplot, "x", "Arial", 14);
plotSetYLabel(&myplot, "Histogram", "Arial", 14);
plotSetYrange(&myPlot, 0, 400);
plotSetTicLabelFont(&myPlot, "arial", 14);
plotHist(myPlot, Dist_a,20);
1 Answer
0
accepted
You can use plotAddHist
to combine multiple histograms in the same plot. For example:
new;
cls;
nobs = 100;
// Make sample data for example
dist_a = rndn(nobs, 1);
dist_b = rndn(nobs, 1) + 3;
dist_c = rndn(nobs, 1) - 3;
struct plotControl myPlot;
myPlot = plotGetDefaults("hist");
// Set up legend before first call
plotSetTextInterpreter(&myPlot, "LaTeX", "legend");
legend_items = "Dist_a" $| "Dist_b" $| "Dist_c";
plotSetLegend(&myPlot, legend_items);
// Draw first historgram
plotHist(myPlot, dist_a, 20);
// Add histograms for dist_b and dist_c
plotAddHist(dist_b, 20);
plotAddHist(dist_c, 20);
Your Answer
1 Answer
You can use plotAddHist
to combine multiple histograms in the same plot. For example:
new;
cls;
nobs = 100;
// Make sample data for example
dist_a = rndn(nobs, 1);
dist_b = rndn(nobs, 1) + 3;
dist_c = rndn(nobs, 1) - 3;
struct plotControl myPlot;
myPlot = plotGetDefaults("hist");
// Set up legend before first call
plotSetTextInterpreter(&myPlot, "LaTeX", "legend");
legend_items = "Dist_a" $| "Dist_b" $| "Dist_c";
plotSetLegend(&myPlot, legend_items);
// Draw first historgram
plotHist(myPlot, dist_a, 20);
// Add histograms for dist_b and dist_c
plotAddHist(dist_b, 20);
plotAddHist(dist_c, 20);