Графическое графическое изображение предоставляет искаженным и неприменимым графикам Python 2.7 после обновления до Ubuntu 18.04

Мой код Python 2.7, который я выполнял в Ubuntu 16.04, делает некоторые простые стандартные программы графического изображения графики, которые предоставляют искаженные и неприменимые графики теперь, когда я обновил до Ubuntu 18.04. Я не получаю сообщений об ошибках или предупреждений. Я НЕ выполняю python3 в новой Ubuntu и версии, которую я вызываю, версия 2.7.15rcq Python. Какие-либо предложения?

Библиотеки Python, которые импортируются:
  scipy
  pylab
  математика

и пара, которые, вероятно, не относятся к этой проблеме графического изображения.

0
задан 10 January 2019 в 23:49

1 ответ

Python IDE для ученых (spyder) может сделать встроенное графическое изображение. Для испытания этой функции открывают терминал и тип:

sudo apt install python2.7 ipython python-matplotlib spyder  

После того, как ipython запрашивают в консоли IPython скопировать/вставить ниже кода и нажатия клавишу Enter выполнять его.

import matplotlib.pyplot as plt   
x, y = [-1, 12], [1, 4]  
plt.plot(x, y, marker = 'o')  

enter image description here

Если это работает, пробуют следующий код Python, который использует scipy, pylab и математические модули.

import pylab as plb
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
from scipy import asarray as ar,exp
import math

x=ar([37,69,157,238,274,319,391,495,533,626,1366,1855,2821,3615,4130,4374,6453,6863,7021,
    7951,8646,9656,10464,11400])
y=ar([1.77,1.67,1.65,1.17,1.34,1.46,0.75,1,0.8,1.02,0.65,0.69,0.44,0.44,0.55,0.43,0.75,0.27,0.26,
    0.44,0.04,0.44,0.26,0.04])

n = 24                                  # the number of data
mean = sum(x*y)/n                       # note this correction
sigma = math.sqrt(sum(y*(x-mean)**2)/n) # note this correction

def gaus(x,a,sigma):
    return a*exp(-(x)**2/(2*sigma**2))

p0 = [1.2, 4000]
popt,pcov = curve_fit(gaus,x,y,p0=p0) 

plt.plot(x,y,'b+:',label='data')
plt.plot(x,gaus(x,*popt),'ro:',label='fit')
plt.legend()
plt.title('Fig. 3 - Fit for Time Constant')
plt.xlabel('Time (s)')
plt.ylabel('Voltage (V)')
plt.show()

def gaus(x,a,sigma):
    return a*exp(-(x)**2/(2*sigma**2))

p0 = [1.2, 4000]
popt,pcov = curve_fit(gaus,x,y,p0=p0)

Вывод показывают в ниже снимка экрана.

enter image description here
(Нажмите на изображение для увеличения),

Вывод показывает это предупреждение:

Warning: pylab (numpy and matplotlib) and symbolic math (sympy) are both 
enabled at the same time. Some pylab functions are going to be overrided by   
the sympy module (e.g. plot).  

... но график производится правильно несмотря на это предупреждающее сообщение.

Для устранения предупреждающего сообщения, удаляют import pylab as plb в строке 1 из кода. Нажатие на треугольный значок слева от строки 1 шоу следующее сообщение проверки синтаксиса.

'pylab as plb' imported but unused  

Сообщение проверки синтаксиса корректно. Выводы кода точно тот же график, когда строка 1 удалена. Иногда это помогает использовать IDE при отладке длинных блоков кода, потому что IDE имеет функции как проверка синтаксиса.

2
ответ дан 28 October 2019 в 07:04

Другие вопросы по тегам:

Похожие вопросы: