项目的难点在于边界的逻辑关系,
.
如上图所示,数据分为两列,将数据作于图中,放于不同的方块之中。作图效果如下图所示:
第一步:选择数据。因为不确定图的坐标范围,因此确定x/y轴的最大最小值,并通过行列数确认间距。
filename = input('请输入文件名字:') # 输入相关参数
# row = int(input('请输入图的行数:'))
# column = int(input('请输入图的行数:'))
row = 6
column = 6
filename = filename + '.csv'
data = pd.read_csv(filename, header=None) # 引入数据
data = data.iloc[:, [3, 6]] # 选择数据列
ydata = data.iloc[:, 0] # 选择x y 数据及其最值
xdata = data.iloc[:, 1]
ymin = ydata.min()
ymax = ydata.max()
xmin = xdata.min()
xmax = xdata.max()
yjian = (ymax-ymin)/row # 确定间距,根据自己情况调整
xjian = (xmax-xmin)/column
第二步:确定坐标数值。因为间距不确定,因此每个坐标值也不确定,需要人为确定数值。
ylist = [] # 确定坐标数据
for i in np.arange(ymin, ymax, yjian):
ylist.append(round(i, 2)) # 因为坐标不一定是整数,注意保留数值
ylist.append(ymax)
xlist = []
for i in np.arange(xmin, xmax, xjian):
xlist.append(round(i, 2))
xlist.append(xmax)
第三步:确定每个空格里面的具体数值,分为两部分。因为一个区间的两个边界值不可同时取到,因此分为左边界值和区间值+右边界值两部分。注意xlist/ylist/m n 顺序。
list1 = [] # 确定每个区间和左边界的数值
for b, s in zip(xlist[:-1], xlist[1:]):
for k, a in zip(ylist[:-1], ylist[1:]):
p = 0
for m, n in zip(data.iloc[:, 0], data.iloc[:,