Draw Mtx As Thumbnail
Project description
Draw Mtx As Thumbnail - 将 Mtx 画为缩略图
样例
平均值 |
不处理 |
---|---|
取 0 次 log |
绝对值 |
安装
pip3 install MtxDrawer -U
自动安装依赖并注册一个命令mtx-drawer
子命令与参数
包含两个子命令 draw-one
和 draw
,可以在终端中通过mtx-drawer
命令查看,二者区别是draw-one
只会处理一个文件,而draw
会递归处理当前目录下的所有 mtx 文件。
参数
-
[--force]
: 强制替换已存在的缩略图 -
[--log-times <n: int>]
: 对缩略图的像素值取 log 的次数 -
[--mat-size <n: int>]
: 缩略图的尺寸 -
[--block-size <n: int>]
: 直接设置子矩阵块的大小 -
[--tick-step <n: int>]
: 设置 x 轴和 y 轴的刻度间隔,启用后会绘制网格线,类似下图:mtx-drawer draw --block-size 1 --tick-step 4 --force -ops real
-
<filepath>
: mtx 文件的路径 (draw-one
子命令中必填) -
<-ops <aver | abs | real | log | ... >>
: 缩略图的类型,其中<aver>
表示平均值,<abs>
表示绝对值,<real>
表示实际值,<log>
表示对数值进行对数变换
运行例子
mtx-drawer draw-one 2.mtx --force --log-times 0 -ops aver abs log real # 一次性绘制2.mtx的四种图,log取0次,强制替换
mtx-drawer draw-one 2.mtx -ops aver abs log real # 一次性绘制2.mtx的四种图,log取2次,不强制替换
mtx-drawer draw --force -ops aver abs log # 绘制当前目录及子目录下的全部mtx文件的三种图,强制替换
mtx-drawer draw -ops aver abs log real # 绘制当前目录及子目录下的全部mtx文件的三种图,不强制替换且log取2次
特殊说明
子矩阵划分方式:当行列不相等时,较大的属性被分为matSize
块,较小的属性为rate * matSize
块;其中rate
为$ min(m,n)/max(m,n) $
命令行补全
基于QuickProject.Commmander开发的命令行 APP 可以提供 zsh 或 fig 的补全脚本:
mtx-drawer complete
基于 Drawer 类的自定义开发
当默认提供的四种算法无法满足需要时,可以按如下方式自行设计算法:
from MtxDrawer.Drawer import Drawer
"""
您可以通过如下方式自定义算法并通过Drawer对象的call方法来调用;
自定义算法可接受的参数将在下表中说明,此外,自定义算法必须返回一个数值用于表示color_bar的显示范围(返回1则表示-1~1)
"""
@Drawer.algorithmWrapper() # 算法装饰器
def myOwnAlgorithm(mat, extern_arg): # 参数命名要符合下表的要求,mat是下表第9项,extern_arg是下表第15项
print(extern_arg)
return max(abs(max([max(i) for i in mat])), abs(min([min(i) for i in mat])))
drawer = Drawer('dist/2.mtx', False, set_log-times=0, force_update=True)
drawer.call('myOwnAlgorithm', extern_arg=1)
"""
---结果---
[信息] 路径模板: "dist/2_{}.svg"
1
[信息] absVal = 1
"""
序号 | 合法参数 | 说明 |
---|---|---|
1 | has_aver |
是否有取平均值选项 => div 是否可用 |
2 | log-times |
外部设定的取 log 的次数 |
3 | mat-size |
矩阵行列值较大的属性被分的块数 |
4 | mtx |
文件的 scipy.sparse.coo*matrix 对象,未做任何更改 |
5 | coo_shape |
mtx 的尺寸 |
6 | coo_data |
矩阵的非零元值 |
7 | coo_rows |
矩阵的非零元素行索引映射到 mat 的行值 |
8 | coo_cols |
矩阵的非零元素列索引映射到 mat 的列值 |
9 | mat |
被初始化好的二维画布对象,类型为 numpy.array |
10 | div |
子矩阵非零元数,只有当 has_aver 为 True 时才会有效 |
11 | row_size |
mat 的行数 |
12 | col_size |
mat 的列数 |
13 | row_block_sz |
划分的子矩阵的行数 |
14 | col_block_sz |
划分的子矩阵的列数 |
15 | extern_* |
额外的参数命名方式,需以"extern_xx=bala"的方式调用 |
现代 IDE 下的提示
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file mtxdrawer-0.0.31.tar.gz
.
File metadata
- Download URL: mtxdrawer-0.0.31.tar.gz
- Upload date:
- Size: 80.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 02894947e42f7b714e21dab27831b79a2aa5ef4be1f5be569b5e8f904d94ff7a |
|
MD5 | 680ce46df347c2d51ccf4d5b875adefa |
|
BLAKE2b-256 | 4dae704fece8af157dd16495e8384e897e168046e5a5a8530741cf226f6a6960 |
File details
Details for the file MtxDrawer-0.0.31-cp311-cp311-macosx_14_0_arm64.whl
.
File metadata
- Download URL: MtxDrawer-0.0.31-cp311-cp311-macosx_14_0_arm64.whl
- Upload date:
- Size: 40.2 kB
- Tags: CPython 3.11, macOS 14.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5d6c819d57bed9bd3809494334f3adb10c4e6a7273c69997305d030ca1e1cd2 |
|
MD5 | e5df0e94fbf5fe6a069c45a5c1a1dc2f |
|
BLAKE2b-256 | b2888c019fe7b690c63eb8f47cb459f0ceb3de855609dfb2e2fdb9dc0bfa8572 |