Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Visualizar o grafico novamente em uma variavel

Ola boa tarde!

no momento em que determino um grafico em uma variavel ele é plotado para mim em sequencia.

Porem quando chamo somente a variavel ela me retorna o local de memoria.

No curso aparece a opção de get.figure (porem essa opção não serve para os tipos de graficos expostos).

Salvei com a variavel savefig em png mas quando chamo a variavel novamente ela continua me retornando o local da memoria do grafico.

porcentagem_conta_linha = sns.relplot(x = 'valor_da_conta', y = 'porcentagem',kind = 'line', data = gorjetas) (retorna o grafico) quando chamo apenas porcentagem_conta_linha (retorna o local da memoria)

fiz o porcentagem_conta_linha.savefig('porcentagem_conta_linha.png') e tentei chamar novamente a variavel e continua retornadn o local da memoria.

Como faço para chamar a exibição do grafico direto com o nome da variavel atribuida para ele?

1 resposta
solução!

Olá, Murilo, tudo bem?

Para resolver esse problema é bem simples. O método get_figure() funciona diretamente para um objeto do tipo AxesSubplot, como no caso da variável valor_gorjeta. Caso tentarmos chamá-la sem o método, apareceria o tipo de objeto e o endereço de memória dela, como podemos ver abaixo:

# Nosso gráfico seria desenhado
valor_gorjeta = sns.scatterplot(x='valor_da_conta', y='gorjeta', data=gorjetas)
# Aparece apenas o endereço de memória e o tipo de objeto
valor_gorjeta

Saída: Tipo de objeto e o endereço de memória

<matplotlib.axes._subplots.AxesSubplot at 0x7f3426832410>

Para que possamos visualizar o gráfico precisamos usar nesse caso o get_figure():

# Assim chamamos a figura que está no endereço de memória que encontramos logo acima.
valor_gorjeta.get_figure()

Saída:

Gráfico de dispersão expressando a relação entre o valor da conta com a gorjeta como apresentada no curso de Data Visualization: Explorando com Seaborn.

 

Já, no caso da sua variável porcentagem_conta_linha ela gera um gráfico relplot que é um objeto do tipo FacetGrid. Um objeto desse tipo não possui o método get_figure().

Mas eu não conseguiria usar esse método nem plotar o gráfico só com o nome da variável?

É possível sim fazer essa ação, mas antes precisamos chamar o atributo ax do FacetGrid para que possamos usar o método get_figure(). O uso desse atributo chama um objeto do tipo AxesSubplot e é nele que podemos utilizar o nosso método de exibição do gráfico. Para notarmos a diferença, deixaremos logo abaixo uma ideia de como os endereços e tipo de objetos aparecem:

# endereço de memória e o tipo de objeto FacetGrid
porcentagem_conta_linha 

Saída: Tipo de objeto e o endereço de memória

<seaborn.axisgrid.FacetGrid at 0x7f340afeb990>

Com ax:

# endereço de memória e o tipo de objeto AxesSubplot
porcentagem_conta_linha.ax

Saída: Tipo de objeto e o endereço de memória

<matplotlib.axes._subplots.AxesSubplot at 0x7f340aff3e50>

Para conseguir apresentar o gráfico com o nosso exemplo, basta escrever a seguinte linha de código:

# Agora conseguimos chamar a figura que está no endereço de memória desejado
porcentagem_conta_linha.ax.get_figure()

Saída:

Gráfico de linhas expressando a relação entre a porcentagem da gorjeta pelo valor da conta e o valor da conta apresentada no curso de Data Visualization: Explorando com Seaborn.

 

Esperamos ter ajudado a compreender um pouco mais da visualização dos dados e qualquer dúvida é só chamar!

Forte abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!