On 2021-08-28 04:39, Steve wrote:
I would like to know how the data is placed on the Y-axis and at the tops of
the bars.
The data is not being shown properly. With some exceptions, it looks as if
the data is getting sorted independently from the dates.
OK, here is the code:
==============================================
# https://matplotlib.org/stable/gallery/index.html
import matplotlib.pyplot as plt
import numpy as np
width = 12 #Width of the graph
height = 6 #Height of the graph
plt.rcParams["figure.figsize"] = (width,height)
plt.rcParams["font.size"] = (9.0)
Count = 0
datesList = [] # Each date showing end of bottle use
hoursList = [] # Number of hours
# daysList = [] # Number of days calculated from hours/24
countList = [] # simple tally
with open("__Insulin_Tracker.txt", 'r') as infile:
for lineEQN in infile:
insulinHours = lineEQN[47:52].strip()
print("Hours = " + insulinHours)
hoursList.append(insulinHours)
insulinDates = lineEQN[20:30].strip()
datesList.append(insulinDates)
# insulinDays= lineEQN[57:62].strip()
# daysList.append(insulinDays)
Count += 1
countList.append(str(Count))
# print(" " + str(Count) + " " + insulinDates + " Hours: " +
insulinHours)
x = Count
count = str(Count)
# Each date indicated the date on which a bottle of insulin has been
depleted
# The bar is to show the number of hours that the bottle has been in use.
Labels = datesList
Xdata= hoursList
Title = ("Bottle List Number of entries: " + count)
x = np.arange(len(Labels)) # the label locations
width = 0.35 # the width of the bars
margin = 0
fig, ax = plt.subplots()
fig.tight_layout(pad=10) # Sets the size of the graph
rects1 = ax.bar(x - width/2, Xdata, width, label='Hours') #Populates the x
axis
# Add some text for labels, title and custom x-axis tick labels, etc.
# fontsize = 20
ax.set_ylabel('Hours of use for each bottle')
ax.set_title(Title)
ax.set_xticks(x)
ax.set_xticklabels((datesList), rotation = 90) #Dates at bottom of the graph
ax.legend()
ax.bar_label(rects1, padding=0,rotation = 90)
plt.show()
[snip]
You're passing ax.bar the contents of Xdata.
What does Xdata contain?
A list of _strings_.
If you want the length of the bars to represent the number of hours,
then they should be numbers.
--
https://mail.python.org/mailman/listinfo/python-list