Добавление меток x и y к участку панды


Предположим, у меня есть следующий код, который строит что-то очень простое с помощью панд:

import pandas as pd
values = [[1, 2], [2, 5]]
df2 = pd.DataFrame(values, columns=['Type A', 'Type B'], 
                   index=['Index 1', 'Index 2'])
df2.plot(lw=2, colormap='jet', marker='.', markersize=10, 
         title='Video streaming dropout by category')

Как я могу легко установить X и y-метки, сохраняя при этом мою способность использовать определенные цветовые карты? Я заметил, что plot() оболочка для панд DataFrames не принимает никаких параметров, специфичных для этого.

5 107

5 ответов:

The df.plot() функция возвращает a

Если вы помечаете столбцы и индекс вашего фрейма данных, pandas автоматически предоставит соответствующие метки:

import pandas as pd
values = [[1, 2], [2, 5]]
df = pd.DataFrame(values, columns=['Type A', 'Type B'], 
                  index=['Index 1', 'Index 2'])
df.columns.name = 'Type'
df.index.name = 'Index'
df.plot(lw=2, colormap='jet', marker='.', markersize=10, 
        title='Video streaming dropout by category')

enter image description here

в этом случае вам все равно нужно будет поставить y-метки вручную (например, через plt.ylabel как показано в другие ответы).

вы можете использовать так:

import matplotlib.pyplot as plt 
import pandas as pd

plt.figure()
values = [[1, 2], [2, 5]]
df2 = pd.DataFrame(values, columns=['Type A', 'Type B'], 
                   index=['Index 1', 'Index 2'])
df2.plot(lw=2, colormap='jet', marker='.', markersize=10,
         title='Video streaming dropout by category')
plt.xlabel('xlabel')
plt.ylabel('ylabel')
plt.show()

очевидно, что вы должны заменить строки 'xlabel' и 'ylabel' с тем, что вы хотите, чтобы они были.

можно установить обе метки вместе с

для случаев, когда вы используете pandas.DataFrame.hist:

plt = df.Column_A.hist(bins=10)

обратите внимание, что вы получаете массив участков, а не участка. Таким образом, чтобы установить метку x вам нужно будет сделать что-то вроде этого

plt[0][0].set_xlabel("column A")