115 lines
3.2 KiB
Python
115 lines
3.2 KiB
Python
###################################################################################################
|
|
# 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 matplotlib
|
|
"""
|
|
['GTK3Agg', 'GTK3Cairo', 'MacOSX', 'nbAgg', 'Qt4Agg', 'Qt4Cairo', 'Qt5Agg', 'Qt5Cairo', 'TkAgg', 'TkCairo',
|
|
'WebAgg', 'WX', 'WXAgg', 'WXCairo', 'agg', 'cairo', 'pdf', 'pgf', 'ps', 'svg', 'template']
|
|
"""
|
|
matplotlib.use('Qt5Agg')
|
|
|
|
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()
|
|
|
|
print ("OK")
|
|
|
|
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]
|
|
|
|
|
|
test_pandas()
|
|
test_matplotlib(0,100,100) |