packages = ["numpy", "matplotlib", "pysd",]

Teacup Heat Transfer


Room Temperature: source = "# netCDF4" with open('netCDF4.py', 'w') as f: f.write(source) #import netCDF4 import pysd mdl = """
James Houghton Teacup Hand Coded XMILE
30.0 0.0
0.125
Heat Loss to Room ("Teacup Temperature"-"Room Temperature")/"Characteristic Time" Ambient Room Temperature 70 The average temperature of the tea and the cup "Heat Loss to Room" 180 10
""" with open('teacup.xmile', 'w') as f: f.write(mdl) model = pysd.read_xmile('teacup.xmile')
target = "sim_output" # https://pysd-cookbook.readthedocs.io/en/latest/analyses/getting_started/Hello_World_Teacup.html#modify-parameter-values def sim(): global outputs PyScript.write(target, '', append=False) outputs = model.run(params={'Room Temperature': float(Element('Room_Temperature').element.value)}) pyscript.write(target, outputs) #level_plot import numpy as np import matplotlib.pyplot as plt import matplotlib as mpl from cycler import cycler mpl.rcParams['axes.spines.top'] = False mpl.rcParams['axes.spines.right'] = False mpl.rcParams['axes.prop_cycle'] = cycler(color=['r', 'g', 'b', 'y']) mpl.rcParams['lines.linewidth'] = 1 fig, axis = plt.subplots() axis.set(xlabel = 'Time', ylabel = 'y') axis.plot(outputs.index, outputs['Teacup Temperature'], label='Teacup Temperature') axis.legend(loc="center right", ) pyscript.write(target, fig, append=True) # outputs[['Teacup Temperature', 'Heat Loss to Room']] """ for column in outputs: fig, axis = plt.subplots() axis.set(xlabel = 'Time', ylabel = column) axis.plot(outputs.index, outputs[column].values, label=column) axis.legend(loc="best", ) pyscript.write(target, fig, append=True) """ sim() def on_click(event): sim()
import random def plotit(*args, **kwargs): import matplotlib.pyplot as plt fig, ax = plt.subplots() ax.plot([2, 3, 5, random.random()*10]) #print('plotting') pyscript.write('sim_output', fig)