MathGroup Archive 2007

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

Search the Archive

Re: Vertical tick labels in BarChart

ok - here you go....

(* create the bar chart with labels in the wrong orientation,  then 
convert the whole thing to primitives with FullGraphics to circumvent 
all of the graphics ticks bugs*)

b = BarChart[vals, BarLabels -> labels] // FullGraphics ;   

(* apply a transformation to all text primitives,  being careful to only 
modify the non-numeric ones since the numeric ones are the vertical axis 
text marks.
The transformation replaces the offending label with a rotated and 
translated version of the label. *)

b /. Text[ v_String, al_List, bl_List] ->  Translate[Rotate[Text[v, {0, 
0}, {-1, 0}], -\[Pi]/2, {0, 0}], al]


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: Finding position of an element in a list:
  • Next by Date: Re: Eigensystem consistency
  • Previous by thread: Re: Vertical tick labels in BarChart
  • Next by thread: Re: Vertical tick labels in BarChart