# Numpy und Matplotlib brauchen wir immer
import numpy as np
%matplotlib inline
import matplotlib.pyplot as plt
def plot_data(xdata, ydata, xerr=None, yerr=None, ax=plt, **kwargs):
# retrieve errors from data
xdata, xerr = unp.nominal_values(xdata), unp.std_devs(xdata)
if (xerr == 0).all():
xerr = None
ydata, yerr = unp.nominal_values(ydata), unp.std_devs(ydata)
if (yerr == 0).all():
yerr = None
# default plot style
if not ('ls' in kwargs or 'linestyle' in kwargs):
kwargs['ls'] = 'none'
if not 'marker' in kwargs:
kwargs['marker'] = '.'
# plot
return ax.errorbar(xdata, ydata, xerr=xerr, yerr=yerr, **kwargs)
plot_data(x, y)
import pint
units = pint.UnitRegistry()
Q_ = units.Quantity
units.default_format = '~P' # Abgekürzte Einheiten-Namen
import uncertainties.unumpy as unp
t = Q_(unp.uarray([1,2,3], 2), units.seconds)
l = Q_(unp.uarray([1,2,3], 2), units.meters)
print(format(l/t, "~L"))
a = (10 * units.m/units.s).plus_minus(2)
print(a)
print("{:~L}".format(a))
print("{:Lx}".format(a))
t = np.linspace(0, 10, 100) * units.seconds
a = -9.81 * units.meter / units.seconds**2
s = a / 2 * t**2
plt.plot(t, s)
plt.xlabel("Zeit $t \, [{:~L}]$".format(t.units))
plt.ylabel("Position $s \, [{:~L}]$".format(s.units))
plot_data(date, T)
plt.ylabel('Temperatur $T [{:~L}]$'.format(T.units))
T_0 = Q_(23.5, units.degC)
print(T_0, T_0.to(units.K))
heating_rate = 0.5 * units.delta_degC / units.s
print(heating_rate, heating_rate.to(units.K / units.s))
print(T_0 + 10 * units.minute * heating_rate)
u = x * units.s
v = y * units.m
def plot_labels(xdata, ydata):
plt.xlabel("${:~P}$".format(xdata.units))
plt.ylabel("${:~P}$".format(ydata.units))
plot_data(u.magnitude, v.magnitude)
plot_labels(u, v)
from tabulate import tabulate
print(tabulate([x, y]))