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 > >