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

前几天搜索注意力训练方法,看到利用舒尔特方格进行练习的,一套舒尔特数字方格卡片竟然要几十块钱,用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练习卡片啦~

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python舒尔特方格是一种用于可视化数据的图形工具,它由Python编程语言和matplotlib库提供支持。舒尔特方格可以帮助我们更好地理解数据之间的关系和趋势。 舒尔特方格通常用于绘制二维数据,其中一个维度表示数据的横坐标,另一个维度表示数据的纵坐标。每个数据点在方格中的位置由其横纵坐标决定,而数据点的颜色或大小可以表示其对应的数值。 在Python中,我们可以使用matplotlib库来创建舒尔特方格。首先,我们需要导入matplotlib库,并创建一个图形对象。然后,我们可以使用scatter函数来绘制数据点,并通过设置参数来调整数据点的颜色、大小等属性。最后,我们可以使用xlabel、ylabel和title函数来添加坐标轴标签和标题。 下面是一个简单的示例代码,演示了如何使用Python绘制舒尔特方格: ```python import matplotlib.pyplot as plt # 创建图形对象 fig, ax = plt.subplots() # 数据 x = [1, 2, 3, 4, 5] y = [1, 4, 9, 16, 25] # 绘制舒尔特方格 ax.scatter(x, y, c='blue', s=50) # 添加坐标轴标签和标题 ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_title('Schulte Grid') # 显示图形 plt.show() ``` 这段代码将创建一个舒尔特方格,其中x轴表示数据的横坐标,y轴表示数据的纵坐标。数据点的颜色为蓝色,大小为50。坐标轴标签分别为'X'和'Y',标题为'Schulte Grid'。 希望以上内容对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值