Re: Orientation of BarChart labels
- To: mathgroup at smc.vnet.net
- Subject: [mg35187] Re: [mg35185] Orientation of BarChart labels
- From: Omega Consulting <omega_consulting at yahoo.com>
- Date: Sat, 29 Jun 2002 01:37:43 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
At 01:32 AM 6/28/2002, Coleman, Mark wrote: >Greetings > >I am creating bar charts for values that have fairly long names. The >default BarLabels option depicts the labels horizontally, causing the >labels to over run eachother and make the chart unreadable. Is there a way >to alter the orientation of the bar labels to veritical? > >Thanks, > >-Mark BarChart uses Ticks (or FrameTicks) to create the BarLabels. Ticks and FrameTicks cannot be rotated, however. So you need to replace them with Text primitives. Create the BarChart. In[1]:= <<Graphics` In[2]:= bc=BarChart[{1,-3,4,5,2,3},{3,6,4,3}, BarLabels->{"axxxxxxxxxx","bxxxxxxxxxx","cxxxxxxxxxx","dxxxxxxxxxx", "exxxxxxxxxx","fxxxxxxxxxx"}] Then we extract the Ticks for the BarLabels. In[3]:= labels = First[Ticks/.Options[bc, Ticks]] Out[3]= {{1.2,axxxxxxxxxx},{2.2,bxxxxxxxxxx},{3.2,cxxxxxxxxxx},{4.2,dxxxxxxxxxx},{5.2, exxxxxxxxxx},{6.2,fxxxxxxxxxx}} Convert the labels to Text primitives. In[4]:= LabelToText[{x_, txt_}] := Text[txt, {x, 0}, {0,1}, {0,1}] In[5]:= text = Map[LabelToText, labels] Out[5]= {Text[axxxxxxxxxx,{1.2,0},{0,1},{0,1}],Text[bxxxxxxxxxx,{2.2,0},{0,1},{0,1}], Text[cxxxxxxxxxx,{3.2,0},{0,1},{0,1}],Text[dxxxxxxxxxx,{4.2,0},{0,1},{0,1}], Text[exxxxxxxxxx,{5.2,0},{0,1},{0,1}],Text[fxxxxxxxxxx,{6.2,0},{0,1},{0,1}]} Remove the Ticks and insert the Text. In[6]:= Show[{bc, Graphics[text]}, Ticks->{None,Automatic}, PlotRange->All] -------------------------------------------------------------- Omega Consulting "The final answer to your Mathematica needs" Spend less time searching and more time finding. http://www.wz.com/internet/Mathematica.html