Я пытаюсь создать программу для построения гистограммы или линейного графика с использованием пользовательских данных для хранения трех вещей о разных объектах; Имя, Категория и Цена. Я пытаюсь получить возможность отображать как «Имя против цены», так и «Категории против количества товаров в этой категории». Проблема в том, что я не уверен, как посчитать, сколько раз использовались указанные c категории, например, 2 красных, 3 синих, 1 зеленый. У меня есть следующий код, который работает для «Имя против цены», но мне нужна помощь в части категории.
* обратите внимание, что все, что относится к категории в коде, является просто заполнителем.
import matplotlib.pyplot as plt
Name = []
Category = []
Price = []
def bar_graph(xdata,ydata,xlabel,ylabel,title):
plt.xlabel(xlabel)
plt.ylabel(ylabel)
plt.title(title)
plt.bar(xdata, ydata)
plt.show()
def line_graph(xdata,ydata,xlabel,ylabel,title):
plt.xlabel(xlabel)
plt.ylabel(ylabel)
plt.title(title)
plt.plot(xdata, ydata)
plt.show()
def save_graph(xdata, ydata, xlabel, ylabel, title):
plt.xlabel(xlabel)
plt.ylabel(ylabel)
plt.title(title)
plt.bar(xdata,ydata)
plt.savefig("Bar Graph.png")
while True:
t = int(input("1. Log a new item\n2. Create a bar graph of the existing data\n3. Create a line graph of the existing data\n4. Save the existing data’s graph\n5. Exit\nEnter Choice: "))
if (t == 1):
Name.append(input("Enter choice of name: "))
Category.append(int(input("Enter choice of category: ")))
Price.append(int(input("Enter choice of price: ")))
elif (t == 2):
choice = int(input("1 for name/category\n2 for name/price\nEnter Here: "))
if (choice == 1):
bar_graph(Name, Price, "Names", "Prices", "Names vs Prices")
elif (t == 3):
choice = int(input("1 for name/category\n2 for name/price\nEnter Here: "))
if (choice == 1):
line_graph(Name, Price, "Names", "Prices", "Names vs Prices")
elif (t == 4):
choice = int(input("1 for name/category\n2 for name/price\nEnter Here: "))
elif (t == 5):
break