Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Problemas ao exibir gráfico com matplotlib

Prezados,

comecei a fazer o execício proposto, porém quando tento rodar o método show() da biblioteca matplotlib, não recebo nenhum resultado.

Alguém pode me ajudar? Segue o código:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

movies = pd.read_csv('data/linear_regression.csv')

SAMPLE_SIZE = 200

sample = movies.sample(n=SAMPLE_SIZE)
sample_x = sample['Investiment']
sample_y = sample['Gross']

plt.scatter(sample_x, sample_y)
plt.show()

Obs: Renomeei as colunas X e Y da planilha original.

Estou usando python 3.4.3

Segue o repositório do projeto no github: https://github.com/jmsstudio/machine_learning_supervised_learning

2 respostas

Oi Jefferson, tudo bem?

Rodei o seu programa aqui na minha máquina com todos os mesmos requerimentos e consegui visualizar o gráfico.

A única coisa que utilizei que estava em uma versão diferente é a versão do Python, estou utilizando a versão 3.6.

Tenta atualizar a versão da linguagem, talvez esse possa ser o problema.

solução!

Pessoal,

pesquisando um pouco vi que o problema está relacionado com o backend utilizado pela biblioteca matplotlib (no caso, na versão 2.1.2 que estou usando).

Por padrão este valor é definido como Agg, não exibindo dados. Se definirmos algum backend gráfico, o gráfico aparece.

Segue referência: https://matplotlib.org/faq/usage_faq.html#what-is-a-backend


Para resolver o problema, fiz o seguinte: Instalei a biblioteca python3-tk no SO. Segue comando: sudo apt-get install python3-tk

E para testar, rodei o seguinte script no terminal do python:

Python 3.4.3 (default, Nov 28 2017, 16:41:13) 
[GCC 4.8.4] on linux
>>> import matplotlib
>>> matplotlib.use("TkAgg")
>>> import matplotlib.pyplot as plt
>>> plt.plot([1.6, 2.7])
>>> plt.show()

Concluindo, para o script do curso funcionar, após instalar um backend gráfico (no caso, python3-tk), precisamos definir esta configuração antes de importar o pyplot, ou seja, precisamos de:

import matplotlib
matplotlib.use("TkAgg")
import matplotlib.pyplot as plt

em nosso script.