Мой код Python 2.7, который я выполнял в Ubuntu 16.04, делает некоторые простые стандартные программы графического изображения графики, которые предоставляют искаженные и неприменимые графики теперь, когда я обновил до Ubuntu 18.04. Я не получаю сообщений об ошибках или предупреждений. Я НЕ выполняю python3 в новой Ubuntu и версии, которую я вызываю, версия 2.7.15rcq Python. Какие-либо предложения?
Библиотеки Python, которые импортируются:
scipy
pylab
математика
и пара, которые, вероятно, не относятся к этой проблеме графического изображения.
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')
Если это работает, пробуют следующий код 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)
Вывод показывают в ниже снимка экрана.
(Нажмите на изображение для увеличения),
Вывод показывает это предупреждение:
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 имеет функции как проверка синтаксиса.