codice:
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.cbook as cbook
import matplotlib.ticker as ticker
import pylab
from pylab import polyfit, poly1d
from numpy import *
from scipy import stats
# lettura dei dati dai due files
data = np.genfromtxt('/home/serena/Desktop/grafico1_data.csv', delimiter=',', names=['x', 'y'])
def read_datafile(file_name):
data = np.loadtxt(file_name, delimiter=',', skiprows=10)
return data
data2 = np.genfromtxt('/home/serena/Desktop/grafico1_data2.csv', delimiter=',', names=['z', 'w'])
def read_datafile(file_name):
data2 = np.loadtxt(file_name, delimiter=',', skiprows=10)
return data2
# definizione del plot
fig = plt.figure()
ax1 = fig.add_subplot(111)
# setting degli assi
ax1.set_title("titolo")
ax1.set_xlabel('dati x')
ax1.set_ylabel('dati y')
ax1.plot(data['x'], data['y'], 'bs', label='simulation')
ax1.plot(data2['z'], data2['w'], 'y^', label='measured')
# setting della griglia
plt.grid(True)
tick_spacing_x= 0.1
tick_spacing_y= 0.2
ax1.xaxis.set_major_locator(ticker.MultipleLocator(tick_spacing_x))
ax1.yaxis.set_major_locator(ticker.MultipleLocator(tick_spacing_y))
# valori min e max degli assi
plt.xlim(0.2, 1)
plt.ylim(4.4, 6.4)
# linear fit dei due set
fit1 = polyfit(data['x'], data['y'], 1)
fit1_fn = poly1d(fit1)
plt.plot(data['x'],data['y'], ' ', data['x'], fit1_fn(data['x']), 'r-', label='lin fit simulation')
fit2 = polyfit(data2['z'], data2['w'], 1)
fit2_fn = poly1d(fit2)
plt.plot(data2['z'],data2['w'], ' ', data2['z'], fit2_fn(data2['z']), 'k-', label='lin fit measured')
# stampa in terminale dei parametri di fit
print(fit1, fit2)
# legenda (???)
pylab.legend(['simulation', 'measured', 'lin fit simulation', 'lin fit measured'])
# salvataggio dell'immagine del plot
plt.savefig('grafico1.png')
# visualizzazione del plot
plt.show()