Python графики с использованием нескольких пользовательских входов - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь создать программу для построения гистограммы или линейного графика с использованием пользовательских данных для хранения трех вещей о разных объектах; Имя, Категория и Цена. Я пытаюсь получить возможность отображать как «Имя против цены», так и «Категории против количества товаров в этой категории». Проблема в том, что я не уверен, как посчитать, сколько раз использовались указанные 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        
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...