Re: PlotMarkers and DateListPlot
- To: mathgroup at smc.vnet.net
- Subject: [mg110195] Re: PlotMarkers and DateListPlot
- From: "Chris Degnen" <degnen at cwgsy.net>
- Date: Mon, 7 Jun 2010 08:07:39 -0400 (EDT)
- References: <hufu00$ecu$1@smc.vnet.net>
Dan Loewenherz asked: > Hi all, > > I'm trying to use some Graphics elements as markers for data points in > my DateListPlot. I'm running into an issue where the first element of > the PlotMarker list is being superimposed on every point in the plot. > Here is the code which returns > similarly undesired behavior. Instead of letters, I'm using points. > Nonetheless, the problem is the same. > > The desired behavior is for the points to scale to the values of > HourlyDataPointCount. > > --------8<-------- > > HourlyAverageCost = {186.8235294117647, 153.28722772277229, > 148.25412844036697, 147.67576719576721, 148.1043396226415, > 147.34375, 142.72424242424245, 141.44635627530366, > 152.81413333333333, 151.30989583333334, 153.04958677685951, > 153.12459893048128, 163.7921212121212, 184.74429223744292, > 177.25316455696202, 140.55072463768116, 215.27272727272728, > 149.90322580645162, 138.625, 94.0, 0, 140.0625, > 142.44230769230768}; > > HourlyDataPointCount = {17, 101, 109, 189, 159, 160, 231, 494, 375, > 384, 242, 187, 165, 219, 158, 69, 11, 31, 8, 1, 0, 16, 52}; > > Hours = Map[DateString[{2010, 1, 1, #, 0, 0}] &, Array[# &, 23]]; > > Points = Map[ > Graphics[{PointSize[Log[#/10 + 0.001]], Point[{0, 0}]}] &, > HourlyDataPointCount] > > DateListPlot[Transpose[{Hours, HourlyAverageCost}], ImageSize -> 600, > LabelStyle -> Directive[FontFamily -> "Helvetica", "Medium"], > DateTicksFormat -> {"HourShort", " ", "AMPM"}, > PlotStyle -> {{Thick, RGBColor[0, 0, 0]}}, Joined -> True, > Frame -> False, PlotRange -> {Automatic, {0, 350}}, > PlotMarkers -> Points] > > -------->8-------- > > Thanks in advance, > Dan > How's this? HourlyAverageCost = {186.8235294117647, 153.28722772277229, 148.25412844036697, 147.67576719576721, 148.1043396226415, 147.34375, 142.72424242424245, 141.44635627530366, 152.81413333333333, 151.30989583333334, 153.04958677685951, 153.12459893048128, 163.7921212121212, 184.74429223744292, 177.25316455696202, 140.55072463768116, 215.27272727272728, 149.90322580645162, 138.625, 94.0, 0, 140.0625, 142.44230769230768}; HourlyDataPointCount = {17, 101, 109, 189, 159, 160, 231, 494, 375, 384, 242, 187, 165, 219, 158, 69, 11, 31, 8, 1, 0, 16, 52}; Hours = Map[DateString[{2010, 1, 1, #, 0, 0}] &, Array[# &, 23]]; (*Changed PointSize[Log[#/10+0.001]] to PointSize[#/1000] for convenience*) Points = Map[Graphics[{PointSize[#/1000], Point[{0, 0}]}] &, HourlyDataPointCount]; (*Partitioned the dataset so each set takes a different point and add again \ for the line*) DateListPlot[ Append[Partition[Transpose[{Hours, HourlyAverageCost}], 1], Transpose[{Hours, HourlyAverageCost}]], ImageSize -> 600, LabelStyle -> Directive[FontFamily -> "Helvetica", "Medium"], DateTicksFormat -> {"HourShort", " ", "AMPM"}, PlotStyle -> {{Thick, RGBColor[0, 0, 0]}}, Joined -> True, Frame -> False, PlotRange -> {Automatic, {0, 350}}, PlotMarkers -> Points]