MathGroup Archive 2009

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Multi-Colored Filling in DateListPlot

  • To: mathgroup at smc.vnet.net
  • Subject: [mg104124] Re: Multi-Colored Filling in DateListPlot
  • From: "David Park" <djmpark at comcast.net>
  • Date: Tue, 20 Oct 2009 04:51:54 -0400 (EDT)
  • References: <20214052.1255951567803.JavaMail.root@n11>

One way to do this is with the Presentations package.

Needs["Presentations`Master`"]

Write routines to generate DateListPlot date iterators for each quarter over
a span of years.

Q1Iter[year1_, year2_] := 
 Table[{"Jan 1, " <> ToString[year], 
   "Mar 31, " <> ToString[year]}, {year, year1, year2}]
Q2Iter[year1_, year2_] := 
 Table[{"Apr 1, " <> ToString[year], 
   "Jun 30, " <> ToString[year]}, {year, year1, year2}]
Q3Iter[year1_, year2_] := 
 Table[{"Jul 1, " <> ToString[year], 
   "Sep 30, " <> ToString[year]}, {year, year1, year2}]
Q4Iter[year1_, year2_] := 
 Table[{"Oct 1, " <> ToString[year], 
   "Dec 31, " <> ToString[year]}, {year, year1, year2}]

Then just draw the quarters with their separate filling color. Use
CustomDateTicks to label the time axis.

dateticks = 
  CustomDateTicks[{{2005, 1, 1}, {2010, 1, 1}, {1, "Year"}, 4}, 
   DateString[#, {"Year"}] &];

Draw2D[
 {DateListDraw[FinancialData["GE", #],
     AxesOrigin -> {Automatic, 0},
     Filling -> Axis,
     FillingStyle -> Lighter@Blue,
     Joined -> True] & /@ Join[Q1Iter[2005, 2009], Q3Iter[2005, 2009]],
  DateListDraw[FinancialData["GE", #],
     AxesOrigin -> {Automatic, 0},
     Filling -> Axis,
     FillingStyle -> Lighter@Red,
     Joined -> True] & /@ Join[Q2Iter[2005, 2009], Q4Iter[2005, 2008]]
  },
 AspectRatio -> .3,
 Frame -> True,
 FrameTicks -> {{Automatic, Automatic}, {dateticks, 
    dateticks // NoTickLabels}},
 PlotLabel -> Style["GE Stock Price", 14, Bold],
 ImageSize -> 500]


David Park
djmpark at comcast.net
http://home.comcast.net/~djmpark/  


From: jroge [mailto:jroge at mac.com] 


I am working on developing some financial reports and I have gotten
stuck on using multiple colors in the filling of a DateListPlot. I
would like to have the color of the filling alternate between blue and
pink each quarter (or year depending on the plot) rather than a single
color in the entire filling. Here is an example of what I am trying to
do:

http://online.wsj.com/article/SB125479559237566623.html

I suspect that FillingStyle is the function I need to use, but calling
out each quarter's (or year's) data is beyond me. Any thoughts? I have
been using a fairly generic plot of GE stock data for exploration:


DateListPlot[FinancialData["GE", "Jan. 1, 2008"], Joined -> True,
Filling -> Bottom]


Thanks,

Jroge





  • Prev by Date: Re: options for VectorPlot in version 7 vs VectorFieldPlot in version 6
  • Next by Date: Re: How to find which variable caused the trigger in Manipulate[]
  • Previous by thread: Re: Multi-Colored Filling in DateListPlot
  • Next by thread: Re: Multi-Colored Filling in DateListPlot