-
Notifications
You must be signed in to change notification settings - Fork 0
/
常用模块.py
157 lines (155 loc) · 5.77 KB
/
常用模块.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#! /usr/bin/env python
# -*- coding: utf-8 -*-
#import numpy as np
#import matplotlib.pyplot as plt
#from matplotlib.ticker import MultipleLocator, FormatStrFormatter
#import scipy.interpolate as itp
#from matplotlib.mlab import griddata
#import matplotlib.tri as tri
#from scipy import integrate
#import vegas
#import os
#XLog=False
#YLog=False
#XBigTicker=0
#XSmallTicker=0
#YBigTicker=0
#YSmallTicker=0
#XLabel="x axis"
#YLabel="y axis"
#YMin=0
#YMax=0
#Title="title"
#SaveName="savename.pdf"
#def Reset():
# XLog=False
# YLog=False
# XBigTicker=0
# XSmallTicker=0
# YBigTicker=0
# YSmallTicker=0
# XLabel="x axis"
# YLabel="y axis"
# YMin=0
# YMax=0
# Title="title"
# SaveName="savename.pdf"
#def SetPlot():
# plt.xlabel(XLabel)
# plt.ylabel(YLabel)
# plt.title(Title)
# ax=plt.gca()
# if XLog:
# ax.set_xscale('log')
# if YLog:
# ax.set_yscale('log')
# if YMax!=0:
# plt.ylim(YMin,YMax)
# if XBigTicker!=0:
# xmajorLocator=MultipleLocator(XBigTicker)#将x主刻度标签设置为20的倍数
# #xmajorFormatter=FormatStrFormatter('%d')#设置x轴标签文本的格式
# xminorLocator=MultipleLocator(XSmallTicker)#将x轴次刻度标签设置为5的倍数
# ymajorLocator=MultipleLocator(YBigTicker)#将y轴主刻度标签设置为0.5的倍数
# #ymajorFormatter=FormatStrFormatter('%d')#设置y轴标签文本的格式
# yminorLocator=MultipleLocator(YsmallTicker)#将此y轴次刻度标签设置为0.1的倍数
# #设置主刻度标签的位置,标签文本的格式
# ax.xaxis.set_major_locator(xmajorLocator)
# #ax.xaxis.set_major_formatter(xmajorFormatter)
#
# ax.yaxis.set_major_locator(ymajorLocator)
# #ax.yaxis.set_major_formatter(ymajorFormatter)
#
# #显示次刻度标签的位置,没有标签文本
# ax.xaxis.set_minor_locator(xminorLocator)
# ax.yaxis.set_minor_locator(yminorLocator)
# plt.legend()
#def Plot(func,xmin,xmax,ndot,*args):
# x=np.linspace(xmin,xmax,ndot)
# y=func(x)
# plt.plot(x,y,*args)
# SetPlot()
# plt.show()
# if SaveName!="savename.pdf":
# plt.savefig(SaveName)
#def Scatter(x,y,*args):
# plt.scatter(x,y,*args)
# SetPlot()
# plt.show()
# if SaveName!="savename.pdf":
# plt.savefig(SaveName)
#def Load(filename,cols):
# return np.loadtxt(filename, dtype='float', unpack=True, usecols=cols)
#def LinSpace(xmin,xmax,ndot):
# return list(np.linspace(xmin,xmax,ndot))
#def LogSpace(xmin,xmax,ndot):
# return list(np.logspace(xmin,xmax,ndot))
#def Interpolate(x,y,xi):
# return itp.splev(xi,itp.splrep(x,y))
#def Interpolate3D(x,y,z,xi,yi):
# triang = tri.Triangulation(x, y)
# interpolator = tri.LinearTriInterpolator(triang, z)
# Xi, Yi = np.meshgrid(xi, yi)
# return interpolator(Xi, Yi)
# #return griddata(x, y, z, xi, yi)
#def Contourf(x,y,z,qujian,*args):
# plt.contourf(x,y,z,levels=qujian,*args)
# SetPlot()
# plt.show()
# if SaveName!="savename.pdf":
# plt.savefig(SaveName)
#def Contour(x,y,z,qujian,*args):
# plt.contour(x,y,z,levels=qujian,*args)
# SetPlot()
# plt.show()
# if SaveName!="savename.pdf":
# plt.savefig(SaveName)
#def IntegrateRomberg(func,xmin,xmax):
# return integrate.romberg(func,xmin,xmax)
#def IntegrateVegas(func,qujian):
# integ = vegas.Integrator(qujian)
# return integ(func, nitn=10, neval=3000).mean()
import os
#def genxwzfunc1(cmd):
# return lambda x: os.popen('bash ~/.xwz.sh '+cmd+' '+str(x)).readlines()
#def genxwzfunc2(cmd):
# return lambda x,y: os.system('bash ~/.xwz.sh '+cmd+' '+str(x)+' '+str(y))
#def genxwzfunc3(cmd):
# return lambda x,y,z: os.system('bash ~/.xwz.sh '+cmd+' '+str(x)+' '+str(y)+' '+str(z))
#def genxwzfunc4(cmd):
# return lambda x,y,z,w: os.system('bash ~/.xwz.sh '+cmd+' '+str(x)+' '+str(y)+' '+str(z)+' '+str(w))
def genxwzfunc(cmd):
def res(*x):
#print('bash ~/.xwz.sh '+cmd+' '+' '.join([str(i) for i in x]))
t=os.popen('bash ~/.xwz.sh '+cmd+' '+' '.join([str(i) for i in x])).readlines()
#print("27",t[0].strip("\n"),"hi")
if len(t)==0:
return "done"
return t[0].strip("\n") if len(t)==1 else [i.strip("\n") for i in t]
return res
#return lambda *x: os.popen('bash ~/.xwz.sh '+cmd+' '+' '.join([str(i) for i in x])).readlines()[0].strip("\n")
xwz1={"免密登陆":genxwzfunc('mianmissh'),"行数":genxwzfunc('hang'),"最后行":genxwzfunc('lasth'),"全查":genxwzfunc('chazhaoa')}
xwz2={"文搜":genxwzfunc('cg'),"终循":genxwzfunc('xunl'),"目搜":genxwzfunc('lg'),"查找":genxwzfunc('chazhao'),"显示行":genxwzfunc('xianshih'),"删除行":genxwzfunc('shanchuh'),"循次":genxwzfunc('xunc'),"追加行":genxwzfunc('zhuijia')}
xwz3={"如果":genxwzfunc('if'),"替换":genxwzfunc('tihuan'),"插入":genxwzfunc('charu')}
xwz4={"行中替换":genxwzfunc('tihuanh')}
函子={}#接受一个变量的函数字典
#函丑={"载入":Load,"维积分":IntegrateVegas,"散点图":Scatter}#接受两个变量的函数字典,依此类推
函丑={}
#函寅={"插值":Interpolate,"线性数组":LinSpace,"对数数组":LogSpace,"荣积分":IntegrateRomberg}
#函卯={"画线":Plot,"等高线":Contour,"等高区":Contourf}
#函辰={"三维插值":Interpolate3D}
函寅={}
函卯={}
函子.update(xwz1)
函丑.update(xwz2)
函寅.update(xwz3)
函卯.update(xwz4)
函辰={}
函巳={}
函午={}
函未={}
函申={}
函酉={}
函戌={}
函亥={}
函括={"有用":genxwzfunc('yy'),"别名":genxwzfunc('alias')}
#函括={"等高线1":Contour,"等高区1":Contourf}#接受任意个变量的函数字典,引用函数时需要用括号把函数和变量括起来。