Re: PairedBarChart "Education and Training pay..."
- To: mathgroup at smc.vnet.net
- Subject: [mg124412] Re: PairedBarChart "Education and Training pay..."
- From: Tomas Garza <tgarza10 at msn.com>
- Date: Thu, 19 Jan 2012 05:07:10 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201112301204.HAA08352@smc.vnet.net>
Hello, Gilmar: I think your problem, as I see it, has two sources: first, using Graphics@{} makes it difficult for you to distinguish between the list of graphics primitives and the options. As it is, you have everything in the same{}. I would rather use the ordinary notation Graphics[{...},...] in order to control properly the options. Second, I think using Offset to control the position of an Inset is not a good idea. I played around with it and I think the following gives a better result: labelRates = {"14.9 %", "10.3 %", "9.2 %", "7.0 %", "5.4 %", "4.0 %", "2.4 %", "1.9 %"}; rates = ToExpression@StringReplace[labelRates, " %" -> ""]; n = Length@rates; labelEarnings = {"$23,088", "$32,552", "$37,024", "$39,884", "$53,976", "$66,144", "$83,720", "$80,600"}; earnings = ToExpression@StringReplace[labelEarnings, "$" | "," -> ""]; labels = {"Some high school,\nno diploma","High school graduate", "Some college,\nno degree","Associate degree", "Bachelor's degree", "Master's degree","Professional degree","Doctoral degree"}; vs = 3.8; (*vertical scale*) lw = 17; (*label \width*) es = 4000; (*earnings scale*) max = Max@earnings; educationandtrainingchart = Graphics[{Transpose@{Range@n, labelRates, rates, labels, earnings, labelEarnings} /. {k_, lr_, r_, l_, e_, le_} :> {Style[Text[lr, {-r - lw/5, vs (k + .25)}], Bold, Medium, FontFamily -> "Times"], EdgeForm[Thick],Black, Pink, Rectangle[{-r, k vs}, {0, vs (k + .5)}], EdgeForm[Thick], Black, Style[Text[l, {lw/2, vs (k + .2)}], Bold, Medium, FontFamily -> "Times"], Green, Rectangle[{lw, k vs}, {lw + e/es, vs (k + .5)}], EdgeForm[Thick], Black, Style[Text[le, {lw*1.25 + e/es, vs (k + .25)}], Bold, Medium], FontFamily -> "Times"}, {Black, Opacity[0.5], Thick, Line@{{0, vs}, {0, vs (n + .5)}}, Line@{{lw, vs}, {lw, vs (n + .5)}}}, Inset[Text[ Style[Framed["Education and Training pay..."], 16, Black, Bold, Background -> Lighter[Yellow]]], Offset[{100, 360}, {0, 0}]], Inset[Text[ Style["Unemployment Rate in 2010 (Percent)", Medium, Bold, FontFamily -> "Times" ]! ], Offset[{-35, 320}, {0, 0}]], Inset[Text[ Style["Median Earnings in 2010 (Dollars)", Medium, Bold, FontFamily -> " Times"]], Offset[{270, 320}, {0, 0}]]}, ImageSize -> 500] By the way, I also reduced the image size. I hope this can be of help. -Tomas > Date: Wed, 18 Jan 2012 05:57:46 -0500 > From: peacenova at yahoo.com > Subject: Re: PairedBarChart "Education and Training pay..." > To: mathgroup at smc.vnet.net > > The following is in reference to: > > http://forums.wolfram.com/mathgroup/archive/2012/Jan/msg00040.html > > First of all; I want to thank Dr.MajorBob and Tomas Garza for their valuable help! > > I have modified Bobby's code (to get closer to my goal of producing the chart) as follows: > > labelRates = {"14.9 %", "10.3 %", "9.2 %", "7.0 %", "5.4 %", "4.0 %", "2.4 %", "1.9 %"}; > > rates = ToExpression@StringReplace[labelRates, " %" -> ""]; > > n = Length@rates; > > labelEarnings = {"$23,088", "$32,552", "$37,024", "$39,884", "$53,976", "$66,144", "$83,720", "$80,600"}; > > earnings = ToExpression@StringReplace[labelEarnings, "$" | "," -> ""]; > > labels = {"Some high school,\nno diploma","High school graduate","Some college,\nno degree","Associate degree", "Bachelor's degree", "Master's degree","Professional degree","Doctoral degree"}; > > vs = 3.8; (*vertical scale*) > > lw = 17; (*label \width*) > > es = 4000; (*earnings scale*) > > max = Max@earnings; > > (**Please; ignore some of the underlining done automatically by my e-mail software **) > > educationandtrainingchart > Graphics@{Transpose@{Range@n, labelRates, rates, labels, earnings , labelEarnings}/. {k_, lr_, r_, l_, e_, le_} :> > {Style[Text[lr, {-r - lw/5, vs (k + .25)}], Bold, Medium, FontFamily -> "Times"], > EdgeForm[Thick], Black, Pink, Rectangle[{-r, k vs}, {0, vs (k + .5)}], > EdgeForm[Thick], Black, Style[Text[l, {lw/2, vs (k + .2)}], Bold, Medium, > FontFamily -> "Times"], Green, Rectangle[{lw, k vs}, {lw + e/es, vs (k + .5)}], EdgeForm[Thick], Black, Style[Text[le, {lw*1.25 + e/es, vs (k + .25)}], Bold, Medium], FontFamily -> "Times"}, > {Black, Opacity[0.5], Thick, Line@{{0, vs}, {0, vs (n + .5)}}, Line@{{lw, vs}, > {lw, vs (n + .5)}}}, > Inset[Text[Style[Framed["Education and Training pay..."], 16, Black, Bold, > Background -> Lighter[Yellow]]], Offset[{100, 360}, {0, 0}]], > Inset[Text[Style["Unemployment Rate in 2010 (Percent)", Medium, Bold, > FontFamily -> "Times"]], Offset[{-150, 320}, {0, 0}]], > Inset[Text[Style["Median Earnings in 2010 (Dollars)", Medium, Bold, > FontFamily -> "Times"]], Offset[{270, 320}, {0, 0}]], ImageSize -> 1000} > > After evaluating the above code and the chart is rendered by Mathematica; > the chart appears all "crumbled up" so; I used the chart's window handles > to expand the chart within the Mathematica notebook. > > Unfortunately; when I attempt to export it via: > > Export["C:\\Temp\\educandtrainingpay.jpg", educationandtrainingchart] > > The chart image is still all crumbled up. How can I fix this problem so that > the chart's image is exported correctly? > > Thank you! > > Gilmar Rodriguez Pierluissi