舒尔特方格生成 | 注意力训练

前几天搜索注意力训练方法,看到利用舒尔特方格进行练习的,一套舒尔特数字方格卡片竟然要几十块钱,用python自己生成它不香嘛~

示例1: 9x9数字舒尔特方格
在这里插入图片描述示例2:古诗词舒尔特方格
在这里插入图片描述这样的舒尔特方格用以下代码就可以生成!

#coding: UTF-8
import random
import math
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签

def SchulteGrid(N, content=None):
    # 定义网格内容
    if content == None:
        num = list(range(1,N*N+1))
        random.shuffle(num)
        num = np.array(num)
        num.reshape(N,N)
    else:
        num = content
        random.shuffle(num)
    
    vlines = list(range(0,N+1))
    hlines = list(range(0,N+1))
    
    # 绘制网格
    plt.figure(figsize=(N,N))
    plt.axis('off')
    plt.vlines(vlines, min(hlines), max(hlines), colors='.25', linewidth=.75)
    plt.hlines(hlines, min(vlines), max(vlines), colors='.25', linewidth=.75)
    
    xs, ys = np.meshgrid(vlines[1:], hlines[:-1])
    for i, (x,y) in enumerate(zip(xs.flatten(), ys.flatten())):
        if type(num[i])==str:
            x = x-0.3
        elif num[i] < 10:
            x = x-0.4
        else:
            x = x-0.3
        plt.text(x, y+0.3, str(num[i]), horizontalalignment='right',verticalalignment='bottom', size=18)

def SchulteGrid_CH(ctext, title):
    cctext = []
    for i in ctext:
        if i not in [',','。','?','!',':']:
            cctext.append(i)
    N = math.sqrt(len(cctext))
    if int(N)==N:
        SchulteGrid(int(N), cctext)
        plt.title(title, size=20)
    else:
        print('The give text cannot be transfered into Schulte Grid!')

#%% Human–Computer Interaction
SchulteGridType = input('Schulte Grid Type you want to generate:')
if SchulteGridType =='Chinese':
    ctext = input('The content is:')
    title = input('The title is:')
    SchulteGrid_CH(ctext, title)
else:
    N = input('N:')
    SchulteGrid(int(N))

生成的图片再保存下来,打印就可以拥有自己的SchulteGrid练习卡片啦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值