@@ -195,62 +195,10 @@ def plot_horiz_hist(f, width=20.0, bincount=None, binwidth=None, pch="o", colour
195195
196196 print (" " * (nlen + 1 ) + "-" * len (ys ))
197197
198- used_labs = set ()
199- # print(" " * (binlen + 1))
200- y_master_label = " " * (binlen + 1 )
201-
202- power_of_ten = 1
203- while power_of_ten < max_y :
204- power_of_ten *= 10
205-
206- current_power = 10
207- while index * 10
208- for y in ys :
209- if y > current_power * 10 :
210- current_power *= 10
211- if y < current_power :
212- y_master_label += str (y ) + " "
213- else :
214- y_master_label += str (y / current_power ) + " "
215- while power_of_ten > 0 :
216- labels = []
217-
218- # print(ys)
219- for lab in labels :
220- ylab = lab
221- if ylab in used_labs :
222- ylab = ""
223- else :
224- used_labs .add (ylab )
225- y_master_label += " " + ylab
226- print (y_master_label )
227-
228- # print(ylab, end=' ')
229-
230- # for i in range(len(hist)):
231- # if int(y) <= hist[i]:
232- # printcolour(pch, True, colour)
233- # else:
234- # printcolour(" ", True, colour)
235- # print('')
236- # xs = hist.keys()
237-
238- # print(" " * (nlen) + "+" + "-" * len(xs))
239-
240- # if xlab:
241- # labels = abbreviate([str(y) for y in ys])
242- # xlen = len(labels[0])
243- # for i in range(0, xlen):
244- # printcolour(" " * (nlen + 1), True, colour)
245- # for x in range(0, len(hist)):
246- # num = labels[x]
247- # if x % 2 != 0:
248- # pass
249- # elif i < len(num):
250- # print(num[i], end=' ')
251- # else:
252- # print(" ", end=' ')
253- # print('')
198+ ys .reverse ()
199+ print (get_y_label (ys , binlen ))
200+
201+
254202 if ytitle :
255203 full_title = "y: " + ytitle
256204 print (" " * ((nlen + 1 ) + len (xs ) - len (full_title )) + full_title )
@@ -266,17 +214,52 @@ def plot_horiz_hist(f, width=20.0, bincount=None, binwidth=None, pch="o", colour
266214 stats = ["observations: %d" % n , "min value: %f" % min_val ,
267215 "mean : %f" % mean , "std dev : %f" % sd , "max value: %f" % max_val ]
268216 print (box_text (stats , max (len (hist ) * 2 , len (title )), nlen ))
269- # print("-" * (2 + center))
270- # print("|" + "Summary".center(center) + "|")
271- # print("-" * (2 + center))
272- # summary = "|" + ("observations: %d" % n).center(center) + "|\n"
273- # summary += "|" + ("min value: %f" % min_val).center(center) + "|\n"
274- # summary += "|" + ("mean : %f" % mean).center(center) + "|\n"
275- # summary += "|" + ("std dev : %f" % sd).center(center) + "|\n"
276- # summary += "|" + ("max value: %f" % max_val).center(center) + "|\n"
277- # summary += "-" * (2 + center)
278- # print(summary)
279217
218+ def get_y_label (ys , binlen ):
219+ y_master_label = ""
220+ ys_copy = ys [:]
221+
222+ used_labels = set ()
223+ for (i , y ) in enumerate (ys_copy ):
224+ y = int (y )
225+ if y in used_labels :
226+ ys_copy [i ] = 0
227+ else :
228+ ys_copy [i ] = int (y )
229+ used_labels .add (y )
230+
231+ zeros = len (ys )* [0 ]
232+ continue_build = True
233+
234+
235+
236+ while continue_build :
237+ y_master_label += " " * (binlen + 2 )
238+ power_of_ten = 10
239+
240+ for (i , y ) in enumerate (ys_copy ):
241+ if y < 1 :
242+ if zeros [i ] > 0 :
243+ y_master_label += "0"
244+ else :
245+ y_master_label += " "
246+ else :
247+ while y >= power_of_ten :
248+ power_of_ten *= 10
249+ zeros [i ] += 1
250+ add_val = y // (power_of_ten / 10 )
251+ y_master_label += str (int (add_val ))
252+ # print(ys_copy)
253+ ys_copy [i ] -= add_val * (power_of_ten / 10 )
254+ zeros [i ] -= 1
255+
256+ continue_build = False
257+ for y in ys_copy :
258+ if y > 0 :
259+ continue_build = True
260+ y_master_label += "\n "
261+ break
262+ return y_master_label
280263
281264def main ():
282265
0 commit comments