114 lines
3.0 KiB
Python
Executable File
114 lines
3.0 KiB
Python
Executable File
###################################################################################################
|
|
# This moddule is called by demo scripts to execute and embed CPython.
|
|
# Must be put in the scripts folder, or else in the python path.
|
|
###################################################################################################
|
|
|
|
import sys
|
|
import os
|
|
|
|
import pandas as pd
|
|
import numpy as np
|
|
import matplotlib.pyplot as plt
|
|
|
|
try:
|
|
import tkinter as tk
|
|
except:
|
|
import Tkinter as tk
|
|
|
|
|
|
def calc(array):
|
|
return np.transpose(array + array)
|
|
|
|
|
|
def test_pandas():
|
|
s = pd.Series([1,3,5,np.nan,6,8])
|
|
print (s)
|
|
dates = pd.date_range('20130101', periods=6)
|
|
print (dates)
|
|
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))
|
|
print (df)
|
|
df2 = pd.DataFrame({ 'A' : 1.,
|
|
'B' : pd.Timestamp('20130102'),
|
|
'C' : pd.Series(1,index=list(range(4)),dtype='float32'),
|
|
'D' : np.array([3] * 4,dtype='int32'),
|
|
'E' : pd.Categorical(["test","train","test","train"]),
|
|
'F' : 'foo' })
|
|
print (df2)
|
|
print (df2.dtypes)
|
|
print (df.head())
|
|
print (df.tail(3))
|
|
print (df.values)
|
|
print (df.describe())
|
|
print (df.T)
|
|
print (df.sort_index(axis=1, ascending=False))
|
|
#print (df.sort_values(by='B'))
|
|
print (df['A'])
|
|
print (df[0:3])
|
|
print (df.mean())
|
|
return str(df.mean())
|
|
|
|
|
|
def test_tkinter():
|
|
root = tk.Tk()
|
|
listb = tk.Listbox(root)
|
|
for item in ["Hello", "World"]:
|
|
listb.insert(0,item)
|
|
listb.pack()
|
|
root.mainloop()
|
|
|
|
|
|
def test_matplotlib(start,stop,step):
|
|
import threading
|
|
x = np.arange(start,stop,step)
|
|
y = np.exp(-x)
|
|
|
|
# example variable error bar values
|
|
yerr = 0.1 + 0.2*np.sqrt(x)
|
|
xerr = 0.1 + yerr
|
|
|
|
# First illustrate basic pyplot interface, using defaults where possible.
|
|
plt.figure()
|
|
plt.errorbar(x, y, xerr=0.2, yerr=0.4)
|
|
plt.title("Simplest errorbars, 0.2 in x, 0.4 in y")
|
|
|
|
# Now switch to a more OO interface to exercise more features.
|
|
fig, axs = plt.subplots(nrows=2, ncols=2, sharex=True)
|
|
ax = axs[0,0]
|
|
ax.errorbar(x, y, yerr=yerr, fmt='o')
|
|
ax.set_title('Vert. symmetric')
|
|
|
|
# With 4 subplots, reduce the number of axis ticks to avoid crowding.
|
|
ax.locator_params(nbins=4)
|
|
|
|
ax = axs[0,1]
|
|
ax.errorbar(x, y, xerr=xerr, fmt='o')
|
|
ax.set_title('Hor. symmetric')
|
|
|
|
ax = axs[1,0]
|
|
ax.errorbar(x, y, yerr=[yerr, 2*yerr], xerr=[xerr, 2*xerr], fmt='--o')
|
|
ax.set_title('H, V asymmetric')
|
|
|
|
ax = axs[1,1]
|
|
ax.set_yscale('log')
|
|
# Here we have to be careful to keep all y values positive:
|
|
ylower = np.maximum(1e-2, y - yerr)
|
|
yerr_lower = y - ylower
|
|
|
|
ax.errorbar(x, y, yerr=[yerr_lower, 2*yerr], xerr=xerr,
|
|
fmt='o', ecolor='g', capthick=2)
|
|
ax.set_title('Mixed sym., log y')
|
|
|
|
fig.suptitle('Variable errorbars')
|
|
|
|
plt.show()
|
|
return [start,stop,step]
|
|
|
|
|
|
if __name__ == "__main__":
|
|
x = np.arange(0, 5, 0.1)
|
|
y = np.sin(x)
|
|
plt.plot(x, y)
|
|
plt.show()
|
|
|
|
|