Хобрук: Ваш путь к мастерству в программировании

Как установить другой цвет для самой большой полосы на графике морского барботажа?

Я пытаюсь создать гистограмму, где все столбцы, меньшие, чем самые большие, имеют мягкий цвет, а самый большой столбец - более яркий цвет. Хорошим примером является gif круговой диаграммы от darkhorse Analytics, где они разбить круговую диаграмму и закончить более четкой гистограммой. Любая помощь будет оценена, спасибо!

26.06.2015

Ответы:


1

Просто передайте список цветов. Что-то типа

values = np.array([2,5,3,6,4,7,1])   
idx = np.array(list('abcdefg')) 
clrs = ['grey' if (x < max(values)) else 'red' for x in values ]
sb.barplot(x=idx, y=values, palette=clrs) # color=clrs)

введите здесь описание изображения

(Как указано в комментариях, более поздние версии Seaborn используют «палитру», а не «цвет»)

26.06.2015
  • В текущей версии ключевое слово color= должно быть заменено на palette= 18.09.2016

  • 2

    [Случай Barplot] Если вы получаете данные из своего фрейма данных, вы можете сделать следующее:

    labels = np.array(df.Name)
    values = np.array(df.Score) 
    clrs = ['grey' if (x < max(values)) else 'green' for x in values ]
    #Configure the size
    plt.figure(figsize=(10,5))
    #barplot
    sns.barplot(x=labels, y=values, palette=clrs) # color=clrs)
    #Rotate x-labels 
    plt.xticks(rotation=40)
    
    14.10.2018

    3

    Другие ответы определяли цвета до построения графика. Вы также можете сделать это потом, изменив саму полосу, которая является участком оси, которую вы использовали для графика. Чтобы воссоздать пример iayork:

    import seaborn
    import numpy
    
    values = numpy.array([2,5,3,6,4,7,1])   
    idx = numpy.array(list('abcdefg')) 
    
    ax = seaborn.barplot(x=idx, y=values) # or use ax=your_axis_object
    
    for bar in ax.patches:
        if bar.get_height() > 6:
            bar.set_color('red')    
        else:
            bar.set_color('grey')
    

    Вы также можете напрямую обращаться к бару, например, через ax.patches[7]. С помощью dir(ax.patches[7]) вы можете отобразить другие атрибуты объекта-бара, которые вы могли бы использовать.

    16.04.2020

    4

    Как я это делаю:

    import seaborn as sns
    import matplotlib.pyplot as plt
    import numpy as np
    
    bar = sns.histplot(data=data, x='Q1',color='#42b7bd')
    # you can search color picker in google, and get hex values of you fav color
    
    patch_h = []    
    for patch in bar.patches:
        reading = patch.get_height()
        patch_h.append(reading)
    # patch_h contains the heights of all the patches now
    
    idx_tallest = np.argmax(patch_h)   
    # np.argmax return the index of largest value of the list
    
    bar.patches[idx_tallest].set_facecolor('#a834a8')  
    
    #this will do the trick.
    

    Мне нравится это, а не установка цвета до или после, считывая максимальное значение. Нам не нужно беспокоиться о количестве патчей или о том, что является самым высоким значением. Обратитесь к matplotlib.patches.Patch Мои результаты  ps: Я немного изменил приведенные здесь графики. Приведенный выше код не даст такого же результата.

    12.12.2020
    Новые материалы

    Решения DBA Metrix
    DBA Metrix Solutions предоставляет удаленного администратора базы данных (DBA), который несет ответственность за внедрение, обслуживание, настройку, восстановление базы данных, а также другие..

    Начало работы с Блум
    Обзор и Codelab для генерации текста с помощью Bloom Оглавление Что такое Блум? Некоторые предостережения Настройка среды Скачивание предварительно обученного токенизатора и модели..

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

    Как построить любой стол
    Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...