• Как увеличить место под xticks?

    @Drill
    Kirushkaa,

    Краткая инструкция:

    import matplotlib.pyplot as plt
    
    def diagram(date,sys,dia):
        # создаем пустую канву fig
        dpi = 100
        fig = plt.figure(dpi = dpi, figsize = (800 / dpi, 600 / dpi))
        
        # "...Столкнулся с проблемой, что для названия осей не хватает места..."
        # Добавляем subplot на канву
        # [left, bottom, width, height] - каждый параметр в пределах от 0 до 1
        # меняем bottom и height, чтобы двигать subplot по канве вверх-вниз,
        # тем самым уменьшая или увеличивая место для xlabel и xticks
        # bottom + height <= 1
        ax = fig.add_axes([0.1, 0.2, 0.8, 0.7])
        ax.set_title("Title - values from date")
        ax.set_xlabel('Day - Time')
        ax.set_ylabel('Values')
    
        # Рисуем графики:
        #ax.grid(True) - если надо отобразить сетку
        #ax.plot(date, sys, linestyle = 'solid', marker='o', markersize=1, label='SYS')
        #ax.plot(date, dia, linestyle = 'solid', marker='o', markersize=1, label='DIA')
        
        # Рисуем диаграмму:
        ax.bar(date, sys, 1 / len(date), color='red', label='SYS')
        ax.bar(date, dia, 1 / len(date), color='blue', label='DIA')
    
        ax.legend() # Показываем легенду
        #ax.legend(loc='upper left') - изменить положение легенды
    
        # "...как изменить разбиение оси y, что б там было от 0 до 220 с интервалом 10 или 20..."
        # от 0 до 220
        y_lim_min = 0
        y_lim_max = 220
        ax.set_ylim(y_lim_min, y_lim_max)
    
        # с интервалом 20 
        step_major = 20
        y_major_ticks = range(y_lim_min, y_lim_max, step_major)
        ax.set_yticks(y_major_ticks)
    
        # Меняем параметры для основных тиков оси Х (для Y - axis='y', для обеих осей - axis='both')
        # для основных тиков which='major', для дополнительных which='minor'
        ax.tick_params(axis='x', which='major', labelsize=10, labelrotation=45)
        
        plt.savefig('test.png', dpi = dpi) # Сохранить в файл
        plt.show()


    Смотрим, что получилось:

    import random
    import datetime as dt
    
    day = [dt.datetime(2021, 2, 16, 15, 15, 00) + dt.timedelta(hours=i*3) for i in range(0,15)]
    sys = [random.randint(110,140) for _ in range(15)]
    dia = [i - random.randint(1,5)-30 for i in sys]
    
    diagram(day,sys,dia)


    609be4f262d58366377752.png
    Ответ написан
    Комментировать
  • Почему не работает GROUP BY?

    @galaxy
    Оно работает, просто у вас, похоже, два разных "Космос"а, чем-то отличающиеся (пробелы? буквы латинские?)
    Ответ написан
    1 комментарий
  • Почему не работает аргумент cmap в mathplotlib?

    Потому что слайсите неправильно, имхо. Надо не оставлять только одну компоненту цвета, а заменять ей две другие компоненты: [RGB] -> [RRR], [GGG], [BBB], а не [R00], [0G0], [00B].

    Ну и ещё как-то так попробовать: https://stackoverflow.com/questions/25625952/matpl...
    Ответ написан
    1 комментарий
  • Почему скачивается не полный файл через url python?

    NeiroNx
    @NeiroNx
    Программист
    Возможно нужна авторизация. Что скачивается через браузер если удалить все данные сайта?
    Ответ написан
    1 комментарий