How to use "hold on" for multiple datasets on the same graph?
Show older comments
Hi,
I am trying to plot 5 different datasets for 3 patients (15 lines in total) on the same graph. The Y value for each line is between 0 and 100 but the X axis is different for each line.
The problem is that the "hold on" function is not working. I think the reason is that I am using different x axis values for each data set.
The output of my code is just the graph of the 5 rois for the last patient (patient_Plan3).
Any ideas how to fix this?
Here is my code:
Note: DVHxAccum and DVHyAccum are 5x1 cells each containing the data that I want to plot.
patient_Plan1='path1';
patient_Plan2='path2';
patient_Plan3='path3';
patient_PlanNames={patient_Plan1, patient_Plan2, patient_Plan3};
totPatient_PlanNum=length(patient_PlanNames);
figure;
hold on;
roiName = { 'Contralateral_Lung', 'rPTV', 'nonGTVLUNG', 'CTV', 'Ipsilateral_Lung'};
axis([0 7500 0 110]);
markers = {'-','.','--'};
Color={'c','m','b','r','g', 'k'};
for j=totPatient_PlanNum
planDir = strcat('O:\WorkstationDB\',patient_PlanNames{j});
[DVHxAccum DVHyAccum] = getDVHAccum(planDir, roiName);
for i = 1:length(roiName)
plot(DVHxAccum{i}, DVHyAccum{i}, [markers{j} Color{i}],'LineWidth',1);
end
end
Accepted Answer
More Answers (1)
Image Analyst
on 21 Apr 2014
The "hold" applies to a specific axes control, and you don't have one yet. You're calling hold on before there's even any axes to hold. Try calling it after you call plot for the first time.
if i == 1
hold on;
end
4 Comments
Mohsen
on 21 Apr 2014
Image Analyst
on 21 Apr 2014
Nope. But you could make it easy for us to help you by posting your data with the code to read it in. Maybe I'll have time to look at it tomorrow - I'm done for today.
Image Analyst
on 22 Apr 2014
You can make up some data then, just have it be in the same format.
Categories
Find more on 2-D and 3-D Plots in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!