Python горизонтальный плавающий составной бар - PullRequest
0 голосов
/ 03 июня 2018

Мне нравится знать, как создать диаграмму, подобную следующей в Python.enter image description here

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

Ответы [ 2 ]

0 голосов
/ 03 июня 2018

Вот некоторый псевдокод, но вы, по сути, можете достичь этого в пандах.Я не собираюсь писать целую программу для вас, но достаточно простого примера, как вы отметили.

import pandas as pd
import numpy as np 
import matplotlib.pyplot as plt

a = np.arange(1, 8)

data_frame = pd.DataFrame([[1, 2, 3, 4, 5, 6, 7]], columns=['A', 'B', 'C', 'D', 'E', 'F', 'G'])


data_frame.plot(kind='barh')



plt.show()

Этот код создаст горизонтальную гистограмму, подобную той, которую вы показывали выше.Если вы хотите, чтобы он был сложен точно так же, как показано выше, вы можете добавить аргумент «stacked = True» в методе .plot ().Чтобы сделать гистограмму горизонтальной, мы передаем в аргументе kind = 'barh'.На графике автоматически появится легенда, подчеркивающая значение каждого бара.Вы можете манипулировать цветом различных полос.Это простой пример, и вам придется больше исследовать панд, но вы можете по существу создавать красивые визуальные эффекты с помощью pandas и matplotlib.pyplot.

Вот вывод: enter image description here

Опять же, вы можете добавить заголовки к значениям в DataFrame, если вы хотите получить конкретные имена для столбцов, иесли у вас есть данные, которые поддерживают гистограмму с накоплением, просто установив для сложенного kwarg значение True, вы создадите гистограмму с накоплением для различных категорий.

0 голосов
/ 03 июня 2018

вы можете использовать seaborn для таких графиков.

следующий пример кода взят из Здесь отобразит то, что вы спрашиваете

import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="whitegrid")

# Initialize the matplotlib figure
f, ax = plt.subplots(figsize=(6, 15))

# Load the example car crash dataset
crashes = sns.load_dataset("car_crashes").sort_values("total", ascending=False)

# Plot the total crashes
sns.set_color_codes("pastel")
sns.barplot(x="total", y="abbrev", data=crashes,
            label="Total", color="b")

# Plot the crashes where alcohol was involved
sns.set_color_codes("muted")
sns.barplot(x="alcohol", y="abbrev", data=crashes,
            label="Alcohol-involved", color="b")

# Add a legend and informative axis label
ax.legend(ncol=2, loc="lower right", frameon=True)
ax.set(xlim=(0, 24), ylabel="",
       xlabel="Automobile collisions per billion miles")
sns.despine(left=True, bottom=True)
plt.show()

Если выищу другой цвет просто поменяй colormap

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...