Eu tenho alguns DataFrames do Pandas compartilhando a mesma escala de valor, mas com colunas e índices diferentes. Ao invocar df.plot()
, recebo imagens de plotagem separadas. o que eu realmente quero é tê-los todos no mesmo enredo que os sub-enredos, mas infelizmente não estou conseguindo encontrar uma solução para como e gostaria muito de receber alguma ajuda.
fonte
.subplots()
retorna diferentes sistemas de coordenadas, dependendo das dimensões da matriz de subtramas que você está criando. Portanto, se você retornar subtramas onde, digamos,nrows=2, ncols=1
precisará indexar os eixos comoaxes[0]
eaxes[1]
. Veja stackoverflow.com/a/21967899/1569221IndexError: too many indices for array
.subplot()
forem usados. Definasqueeze=False
para forçar.subplot()
a sempre retornar umndarray
em qualquer caso de linhas e colunas.Você pode ver, por exemplo, na documentação que demonstra joris answer. Também da documentação, você também pode definir
subplots=True
elayout=(,)
dentro daplot
função pandas :Você também pode usar
fig.add_subplot()
quais parâmetros da grade de subparcela, como 221, 222, 223, 224, etc., conforme descrito na publicação aqui . Bons exemplos de plotagem no quadro de dados do pandas, incluindo sub -plotagens , podem ser vistos neste notebook ipython .fonte
subplots
elayout
kwargs gerarão SOMENTE vários gráficos para um único quadro de dados. Isso está relacionado, mas não é uma solução, para a questão do OP de plotar vários quadros de dados em um único gráfico.layout=(df.shape[1], 1)
, por exemplo).Você pode usar o estilo familiarizado Matplotlib chamando um
figure
esubplot
, mas você só precisa especificar o eixo atual usandoplt.gca()
. Um exemplo:etc ...
fonte
Você pode plotar várias subparcelas de vários quadros de dados do pandas usando o matplotlib com um truque simples de fazer uma lista de todos os quadros de dados. Em seguida, use o loop for para plotar subtramas.
Código de trabalho:
Usando esse código, você pode plotar subtramas em qualquer configuração. Você precisa apenas definir o número de linhas
nrow
e o número de colunasncol
. Além disso, você precisa fazer uma lista dos quadros de dadosdf_list
que deseja plotar.fonte
count =+1
mascount +=1
Você pode usar isto:
fonte
Você pode não precisar usar o Pandas. Aqui está um gráfico matplotlib de frequências de gatos:
fonte
Com base na resposta @joris acima, se você já estabeleceu uma referência para a subparcela, também pode usá-la. Por exemplo,
fonte
Como criar vários gráficos a partir de um dicionário de quadros de dados com dados longos (organizados)
Premissas
cat
,, podem estar sobrepostas, mas todos os quadros de dados podem não conter todos os valores decat
hue='cat'
Como os quadros de dados estão sendo iterados, não há garantia de que as cores sejam mapeadas da mesma forma para cada plotagem
'cat'
valores exclusivos para todos os quadros de dadosImportações e dados sintéticos
Crie mapeamentos de cores e plotagem
fonte