Q: How can I force ListPlot to show all data in graphics?
- To: mathgroup at smc.vnet.net
- Subject: [mg28542] Q: How can I force ListPlot to show all data in graphics?
- From: Xing Jing Li <xingjing at calvin.math.vt.edu>
- Date: Wed, 25 Apr 2001 19:21:50 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
I had some data in some lists that I want to plot. While I was
plotting them using LIstPlot I saw some of the graphics did not show
all data in the Y-axes. I can not figure out which options to change
to force the graphics to show all data? I have data and functions as
following:
---------- snip -----------------------------------------------------
tcid = "000003";
date = "Apr-24-2001";
data = {{000003, 38916, 39863}, {000003, 38472, 40401}, {000003, 43777,
45453}, {000003, 45265, 45808}, {000003, 44934, 46693}, {000003,
48092, 50120}, {000003, 50662, 52348}, {000003, 54775,
55639}, {000003, 54577, 56029}, {000003, 60948, 61788}, {000003,
63202, 64775}, {000003, 63702, 65867}, {000003, 65480,
66462}, {000003, 66328, 67054}, {000003, 66498, 67480}, {000003,
66364, 67610}, {000003, 66739, 69041}, {000003, 69925,
73104}, {000003, 72516, 73308}, {000003, 73087, 73350}, {000003,
72888, 73592}, {000003, 75081, 76004}, {000003, 74249,
76013}, {000003, 73930, 76211}, {000003, 79932, 81828}, {0, 32400,
32400}};
eTestLoad[data] :=
Module[{load, startTime, sh, sm, ss, endTime, eh, em, es, time, tnum, tp,
tl, TickFunc, index}, load = {};
startTime = Min[Table[data[[i, 2]], {i, 1, Length[data]}]];
endTime = Max[Table[data[[i, 3]], {i, 1, Length[data]}]];
sh = Floor[N[(startTime/3600)]];
sm = Floor[N[startTime/3600 - sh]*60];
ss = Floor[N[((startTime/3600 - sh)*60 - sm)*60]];
If[StringLength[ToString[sm]] < 2, sm = "0" <> ToString[sm]];
If[StringLength[ToString[ss]] < 2, ss = "0" <> ToString[ss]];
eh = Floor[N[(endTime/3600)]];
em = Floor[N[endTime/3600 - eh]*60];
es = Floor[N[((endTime/3600 - eh)*60 - em)*60]];
If[StringLength[ToString[em]] < 2, em = "0" <> ToString[em]];
If[StringLength[ToString[es]] < 2, es = "0" <> ToString[es]];
time = startTime;
While[time == endTime, tnum = 0;
For[index = 1, index < Length[data], index++,
If[time =84 data[[index, 2]] && time == data[[index, 3]], tnum++
]];
AppendTo[load, tnum];
time = time + 60];
AppendTo[load, 0];
Print[
"Starting Time: " <> ToString[sh] <> ":" <> ToString[sm] <> ":" <>
ToString[ss] <> "\n" <> "Ending Time: " <> ToString[eh] <> ":" <>
ToString[em] <> ":" <> ToString[es] <> "\n" <> "Number of tests:
" <>
ToString[Length[data] - 1] <> "\n" <>
"Number of tests within a minute: " <> ToString[Max[load]]];
If[0 == Max[load] == 10, testNum = Table[i, {i, 1, Max[load]}],
If[10 < Max[load] == 20,
tnLabel = Flatten[Table[{"", 2i}, {i, 1, Ceiling[Max[load]/2]}]
];
tnPos = Table[i, {i, 1, Max[load]}];
testNum = Table[{tnPos[[i]], tnLabel[[i]]}, {i, 1, Max[load]}],
If[20 < Max[load] == 50, testNum = Automatic,
If[50 < Max[load] == 100,
tnLabel =
Flatten[
Table[{"", "", "", "", 10i}, {i, 1,
Ceiling[Max[load]/10]}]];
tnPos = Table[2i, {i, 1, Ceiling[Max[load]/2]}];
testNum =
Table[{tnPos[[i]], tnLabel[[i]]}, {i, 1,
Ceiling[Max[load]/2]}], testNum = Automatic]]]];
tp = Table[60*i, {i, 1, eh - sh + 1}];
tl = Table[sh + i, {i, 1, eh - sh + 1}];
TickFunc = {Table[{tp[[i]], tl[[i]]}, {i, 1, Length[tp]}], testNum}
;
ListPlot[load, PlotJoined -> True, ImageSize -> {450, 300},
AxesLabel -> {"Day Time", "Number of Tests"}, PlotLabel -> date,
Ticks -> TickFunc]];
eTestLoadCourse[data, tcid_String] :=
Module[{course, courseData, load, startTime, sh, sm, ss, endTime, eh, em,
es, time, tnum, tp, tl, TickFunc, index, testNum},
course = Read[StringToStream[tcid], Number];
courseData = {};
For[index = 1, index == Length[data], index++,
If[data[[index, 1]] == course, AppendTo[courseData, data[[index
]]]]];
load = {};
startTime = Min[Table[courseData[[i, 2]], {i, 1, Length[courseData]
}]];
endTime = Max[Table[courseData[[i, 3]], {i, 1, Length[courseData]}]
];
sh = Floor[N[(startTime/3600)]];
sm = Floor[N[startTime/3600 - sh]*60];
ss = Floor[N[((startTime/3600 - sh)*60 - sm)*60]];
If[StringLength[ToString[sm]] < 2, sm = "0" <> ToString[sm]];
If[StringLength[ToString[ss]] < 2, ss = "0" <> ToString[ss]];
eh = Floor[N[(endTime/3600)]];
em = Floor[N[endTime/3600 - eh]*60];
es = Floor[N[((endTime/3600 - eh)*60 - em)*60]];
If[StringLength[ToString[em]] < 2, em = "0" <> ToString[em]];
If[StringLength[ToString[es]] < 2, es = "0" <> ToString[es]];
time = startTime - Mod[startTime, sh*3600];
While[time == endTime, tnum = 0;
For[index = 1, index == Length[courseData], index++,
If[time =84 courseData[[index, 2]] && time == courseData[[index,
3]],
tnum++]];
AppendTo[load, tnum];
time = time + 30];
AppendTo[load, 0];
Print[
"Test Configuration ID: " <> tcid <> "\n" <> "Starting Time: " <>
ToString[sh] <> ":" <> ToString[sm] <> ":" <> ToString[ss] <>
"\n" <>
"Ending Time: " <> ToString[eh] <> ":" <> ToString[em] <> ":" <>
ToString[es] <> "\n" <> "Number of tests: " <>
ToString[Length[courseData]] <> "\n" <>
"Number of tests within a minute: " <> ToString[Max[load]]];
If[0 == Max[load] == 10, testNum = Table[i, {i, 1, Max[load]}],
If[10 < Max[load] == 20,
tnLabel = Flatten[Table[{"", 2i}, {i, 1, Ceiling[Max[load]/2]}]
];
tnPos = Table[i, {i, 1, Max[load]}];
testNum = Table[{tnPos[[i]], tnLabel[[i]]}, {i, 1, Max[load]}],
If[20 < Max[load] == 50, testNum = Automatic,
If[50 < Max[load] == 100,
tnLabel =
Flatten[
Table[{"", "", "", "", 10i}, {i, 1,
Ceiling[Max[load]/10]}]];
tnPos = Table[2i, {i, 1, Ceiling[Max[load]/2]}];
testNum =
Table[{tnPos[[i]], tnLabel[[i]]}, {i, 1,
Ceiling[Max[load]/2]}], testNum = Automatic]]]];
tp = Table[60*i, {i, 1, 2*(eh - sh + 1)}];
tl = Flatten[Table[{"", sh + i}, {i, 1, eh - sh + 1}]];
TickFunc = {Table[{tp[[i]], tl[[i]]}, {i, 1, Length[tp]}], testNum}
;
ListPlot[load, PlotJoined -> True, ImageSize -> {450, 300},
AxesLabel -> {"Day Time", "Number of Tests"},
PlotLabel -> "TCID:" <> tcid <> " Date:" <> date,
Ticks -> TickFunc]];
eTestLoad[data];
eTestLoadCourse[data, tcid];
-------- snip ---------------------------------------------
Run the above code I can see a full closed graphics from the second
function call but not the from the first one. How can I make the full
graphics show from the first function?
Another question is that how can I change the ticks to make major
ticks bigger than the minors. Specifically I want to make the ticks
in second function at half hour smaller than the ones at full hour.
How can I do that?
Thanks in advance for all your help,
Jing
--
******************************************************************
Xing Jing Li email: xingjing at math.vt.edu
Programmer Office: (540)231-2216
Department of Mathematics Fax: (540)231-5960