• Как в matplotlib уменьшить диапазон?

    @PashaLynx Автор вопроса
    Страшный дилетант
    Ну, во-первых, надо быть внимательным. В скрипте была ошибка, из-за которой все даты были равны.
    Отвечаю на второй вопрос - чтобы дата была такой, какой вам надо, используйте DateFormatter.
    Исправленный код будет выглядеть вот так
    import matplotlib.pyplot as plt
    import matplotlib
    import sqlite3
    from matplotlib import dates
    from datetime import datetime, timedelta
    import matplotlib.dates as mdates
    
    price = []
    check_time = []
    
    
    conn = sqlite3.connect('data.db')
    c = conn.cursor()
    z = c.execute('''SELECT value FROM euro ORDER BY id DESC LIMIT 114;''')
    rowss = z.fetchall()
    for row in rowss:
        s = row[0]
        s = float(s)
        price.append(s)
    
    now = datetime.now()
    time_value = now
    i=1
    while i<=114:
        check_time.append(time_value)
        time_value = time_value - timedelta(minutes=10)
        i=i+1
    
    dates = matplotlib.dates.date2num(check_time)
    plt.plot(check_time, price, label='курс евро')
    plt.title('КУРС ЕВРО ЗА ПОСЛЕДНИЕ СУТКИ. ', fontsize=15)
    plt.xlabel('время', fontsize=12, color='blue')
    plt.ylabel('стоимость', fontsize=12, color='blue')
    plt.xticks(rotation=45)
    plt.legend()
    plt.grid(True)
    # Преобразовываем дату
    plt.gcf().autofmt_xdate()
    myFmt = mdates.DateFormatter('%H:%M')
    plt.gca().xaxis.set_major_formatter(myFmt)
    
    plt.savefig('data/euro.png')

    И сам график будет выглядеть вот так.5fb21d1d87c7f062266900.png
    Ответ написан
    Комментировать
  • Sqlite - как сделать запрос поиска 'строгим'?

    @PashaLynx Автор вопроса
    Страшный дилетант
    Кароче, разобрался сам.
    import sqlite3
    a = 'leha'
    b = '1234'
    """
    0 - пароль и логин не совпадают
    1 - admin
    2 - user
    """
    conn = sqlite3.connect('manager.db')
    c = conn.cursor()
    x = c.execute('''SELECT name FROM users
                WHERE login =?''', (a,))
    x = str(x.fetchall())
    
    y = c.execute('''SELECT name FROM users
                WHERE pas =?''', (b,))
    y = str(y.fetchall())
    if x != y:
        print(0)
    
    else:
        c = c.execute('''SELECT role FROM users
                    WHERE login =?''', (a,))
        c = str(c.fetchall())
        if c == "[('admin',)]":
            print(1)
        else:
            print(2)
    Ответ написан