[Tutor] Question about HORIZONTAL BAR CHART.....
ajkadri at googlemail.com
Sat Nov 25 15:34:43 CET 2006
As far as I understand, I need to design an algorithm which computes the
padding between each bar (space between each bar) and the length of each bar
( remember that this is a HORIZONTAL BAR CHART).
I am trying to understand your email. ( Please bear with my slow
On 11/24/06, Luke Paireepinart <rabidpoobear at gmail.com> wrote:
> Asrarahmed Kadri wrote:
> > Hi Folks,
> > I am constructing a bar-chart using Tkinter. The function takes a list
> > 'data' and draws horizontal bar for each value.
> > Now what I want is the the canvas widget should be able to handle
> > variable number of data-items. I cannot figure out how to do that,
> > because I have hard coded the lengths of X and Y axes. I want to make
> > the entire function a lot more flexible so that it determines the
> > length of both the axes on the basis of data supplied to it.
> Note: I didn't realize you said horizontal bar charts.
> This does vertical bar charts.
> It should be trivial to change this.
> Sorry for not reading your post more carefully to begin with.
> #for width
> >>> data = [1,5,6,7,8,3,2,9]
> >>>target_width = 600
> >>>padding = 10
> >>>num_of_data_items = len(data)
> >>>individual_width =(
> >>>padding* (len(data)-1)
> >>>528 + 70
> #for height
> >>>target_height = 600
> >>> maxval = max(yvals)
> >>> for item in yvals:
> print int((float(item)/maxval) * target_height)
> Did you honestly try to think this through before posting?
> It's a very simple concept.
> Not trying to be mean, just frank.
> I think you could've done this on your own if you had tried.
> Good luck with your bar charts. :)
> When you ask a question such as this
> "I cannot figure out how to do that, because I have hard coded the
> lengths of X and Y axes. I want to make the entire function a lot more
> flexible so that it determines the length of both the axes on the basis
> of data supplied to it."
> The way you should be reasoning is this:
> I have hardcoded the lengths of the x and y axes.
> I need to change this for my function to operate how I want it to.
> How do I change it?
> 1) I have the data set already, so how do i figure out the width? (or
> height, if you're doing horizontal bar graphs)
> Well, I can make the following distinctions:
> - I have a target width (the width of the canvas) that they must all fit
> - all bars will be the same width
> - there should be some distance between each bar.
> - this distance should be the same no matter how many data elements
> there are, IE fixed.
> - so if I have a fixed width between variable amounts of data, how would
> I design an algorithm to perform this for me on any arbitrary data set?
> 2) How do I figure out the height of the data sets? (or width, if you're
> doing horizontal bar graphs)
> The following distinctions can be made:
> - I have a target height that they all must fit within (the height of
> the canvas)
> - Only the maximum value should be the full height of the canvas.
> - the others should be less than this height, depending NOT on their
> ratio to the height of the maximum bar, but on their ratio to the data
> that generated this.
> -- what do we use for ratios? Fractions!
To HIM you shall return.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Tutor