построить гистограмму с именами столбцов по оси x - PullRequest
0 голосов
/ 28 мая 2020

Dataframe как построить гистограмму, используя python с именами столбцов по оси x и суммой первого столбца по оси y. У меня есть фрейм данных, похожий на этот

     Name  1990 1991 1992 1993 1994 
  0   A      10    2   15   20   18
  1   B      13   14   18   11   17
  2   C      12   17    8   10   13
  3   D       9   15   16    6    9
  4   E      19   18   13   17   19
  5   Total  63   66   70   64   76

Я хочу построить гистограмму с осью x = 1990,1991,1992,1993,1994 и осью Y = общие значения. Любая помощь с кодом python будет очень принята.

может ли кто-нибудь помочь мне с графиком разброса c Dynami, используя plotly express с 1990, 1991, 1992, 1993, 1994 годами по оси x и соответствующие годовые данные по оси ординат. Значения столбца Name будут взяты за анимацию. при нажатии кнопки воспроизведения данные, соответствующие году и значению имени, должны переместиться с 1990 на 1994

Ответы [ 3 ]

0 голосов
/ 28 мая 2020

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

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
namesofxaxis= ['C', 'C++', 'Java', 'Python', 'PHP']
data = [23,17,35,29,12]

теперь позволяет разрезать данные пятой строки.

data = df[5, ]
namesofxaxis=names(df)

ax.bar(namesofxaxis,data )
plt.show()
0 голосов
/ 28 мая 2020

IIU C, вы хотите просто построить строку «Итого» по годам. Вы можете использовать график pandas, сначала отфильтруйте фрейм данных до полной строки, затем set_index и транспонируйте T строки и столбцы фрейма данных, затем используйте pd.DataFrame.plot:

df.query('Name == "Total"').set_index('Name').T.plot()

Вывод:

enter image description here

Для столбчатой ​​диаграммы:

df.query('Name == "Total"').set_index('Name').T.plot.bar()

Вывод:

enter image description here

Минимальный полный пример:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'Name': {0: 'A', 1: 'B', 2: 'C', 3: 'D', 4: 'E', 5: 'Total'},
 '1990': {0: 10, 1: 13, 2: 12, 3: 9, 4: 19, 5: 63},
 '1991': {0: 2, 1: 14, 2: 17, 3: 15, 4: 18, 5: 66},
 '1992': {0: 15, 1: 18, 2: 8, 3: 16, 4: 13, 5: 70},
 '1993': {0: 20, 1: 11, 2: 10, 3: 6, 4: 17, 5: 64},
 '1994': {0: 18, 1: 17, 2: 13, 3: 9, 4: 19, 5: 76}})

df.query('Name == "Total"').set_index('Name').T.plot.bar()
plt.show()
0 голосов
/ 28 мая 2020

Надеюсь, это поможет!

#  sample data
df = pd.DataFrame({
    '1990': [5, 6, 7, 9, 2],
    '1992': [15, 2, 7, 5, 11],
    '1994': [2, -6, 21, 6, 2]},
    index= ['a', 'b', 'c', 'd', 'e']

)

# Transposing the dataframe before plotting
df.T.plot() 

Using cols in X-axis and Index as Y-axis

Подробнее о Pandas Dataframe Plot fns, это действительно мощно!

df.T.plot(kind='bar')

enter image description here

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