Suponha que eu tenha o seguinte código que plota algo muito simples usando pandas:
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')
Como defino facilmente os rótulos x e y, preservando minha capacidade de usar mapas de cores específicos? Notei que o plot()
invólucro para DataFrames do pandas não aceita parâmetros específicos para isso.
python
pandas
dataframe
matplotlib
Everaldo Aguiar
fonte
fonte
pd.plot()
? Dada a concisão adicional dopd.plot()
excessoplt.plot()
, parece que faria sentido torná-lo ainda mais sucinto em vez de ter que ligarax.set_ylabel()
.ax.set_ylabel("y label")
, ele retorna um erro'list' object is not callable
. Qualquer ideia?ax.axes.set_ylabel("y label")
.ax.set(xlabel='...)
mais alto nesta resposta, pois pode ser que você tenha perdido o gráfico. É realmente a abordagem mais sucinta para definir os dois eixos, que é o caso comum.Você pode usar assim:
Obviamente, você precisa substituir as seqüências de caracteres 'xlabel' e 'ylabel' pelo que deseja que elas sejam.
fonte
plt.xlabel()
etc. depoisdf.plot()
, não antes, porque, caso contrário, você recebe dois gráficos - as chamadas modificarão um gráfico "anterior". A mesma coisa vale paraplt.title()
.Se você rotular as colunas e o índice do seu DataFrame, os pandas fornecerão automaticamente os rótulos apropriados:
Nesse caso, você ainda precisará fornecer os rótulos y manualmente (por exemplo, via
plt.ylabel
como mostrado nas outras respostas).fonte
É possível definir os dois rótulos junto com a
axis.set
função. Procure o exemplo:fonte
.set(xlabel='x axis', ylabel='y axis')
solução porque ela permite colocar tudo em uma linha, ao contrário dos métodos de plotagem set_xlabel e set_ylabel. Eu me pergunto por que todos eles (incluindo o método set, a propósito) não retornam o objeto de plotagem ou pelo menos algo herdado dele.Para casos em que você usa
pandas.DataFrame.hist
:Observe que você recebe um ARRAY de plotagens, em vez de uma plotagem. Assim, para definir o rótulo x, você precisará fazer algo assim
fonte
A respeito ...
fonte
pandas
usamatplotlib
para gráficos básicos de quadro de dados. Portanto, se você estiver usandopandas
o plot básico, poderá usar o matplotlib para personalizar o plot. No entanto, proponho aqui um método alternativoseaborn
que permite mais personalização do gráfico, sem entrar no nível básico dematplotlib
.Código de trabalho:
fonte