Files
dev/script/cpy/xxx.py
2023-05-01 11:28:04 +02:00

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)