MathGroup Archive 2007

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

Search the Archive

Re: Vertical tick labels in BarChart

  • To: mathgroup at smc.vnet.net
  • Subject: [mg84036] Re: Vertical tick labels in BarChart
  • From: sdw <nospam.warwick at jps.net>
  • Date: Fri, 7 Dec 2007 03:08:01 -0500 (EST)
  • References: <fj8qal$jg5$1@smc.vnet.net>

bar chart uses Ticks to draw the labels.  Ticks seems to have bugs  ( 
Ticks are bugs, as you know.  )

for example,  

Needs["BarCharts`"]

labels = {"MQM.A7L2B1", "MQMC.9R2.B1", "MQTLI.11R2.B1"};
vals = {5, 6, 7};


vals = Flatten[Table[vals, {5}]];
labels = Flatten[Table[labels, {5}]];

 (* create the kind of labels you want... *)

grlabels =
  Map[ Graphics[Rotate[Text[#, {0, 0}, {-1, 0}], -\[Pi]/2, {0, 0}],
     Frame -> False] &, labels];

lrng = Range[Length[labels]];

ListPlot[vals, Ticks -> {Transpose[{lrng, grlabels}], Automatic}]

which proves that if Ticks are graphics objects,  things break.  
further, you cannot specify Tics as a simple sequence of graphics 
objects since the form of Ticks assumes that a list has position 
information. 

further,  there is no concept of a Rotation style, so you cannot specify 
a text direction without creating a graphics object so forget that too. 

Just export it to Excel and save yourself for higher ROI activities. 





John Jowett wrote:
> I would have thought this is a FAQ but it doesn't seem to be ...
>
> Consider the following construction of simple Bar Charts where the bar
> labels are strings.  The first one looks OK. In the second one, where
> there are more bars, it's a mess because all the labels overlap
> (unless the graphics is increased a lot in size):
>
> Needs["BarCharts`"]
>
> labels = {"MQM.A7L2B1", "MQMC.9R2.B1", "MQTLI.11R2.B1"};
> vals = {5, 6, 7};
>
> BarChart[vals, BarLabels -> labels]
>
> vals = Flatten[Table[vals, {5}]];
> labels = Flatten[Table[labels, {5}]];
>
> BarChart[vals, BarLabels -> labels]
>
> This could be neatly solved if the labels were oriented vertically
> instead of horizontally (it's easy to do this, e.g., in certain
> spreadsheet applications).  However I can't find any option that
> allows it.
> I suspect it might be possible using some special Ticks construction
> but haven't taken the time to see.   But this should be easy ... does
> anyone know how ?
>
> Thanks,
> John Jowett
>
>   


  • Prev by Date: Re: Eigensystem consistency
  • Next by Date: Re: Presentations Package Announcement
  • Previous by thread: Re: Vertical tick labels in BarChart
  • Next by thread: Re: Vertical tick labels in BarChart