like-sci-figures 0.0.0-stage → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/LICENSE +56 -0
  2. package/README.md +196 -2
  3. package/cli.js +79 -0
  4. package/examples/area.json +9 -0
  5. package/examples/bar.json +15 -0
  6. package/examples/bland_altman.json +128 -0
  7. package/examples/bode.json +8 -0
  8. package/examples/box.json +8 -0
  9. package/examples/bubble.json +7 -0
  10. package/examples/contour.json +10 -0
  11. package/examples/corr_matrix.json +99 -0
  12. package/examples/dendrogram.json +5 -0
  13. package/examples/density.json +8 -0
  14. package/examples/dot_plot.json +8 -0
  15. package/examples/ecdf.json +377 -0
  16. package/examples/errorbar.json +7 -0
  17. package/examples/forest.json +12 -0
  18. package/examples/heatmap.json +10 -0
  19. package/examples/hexbin.json +6009 -0
  20. package/examples/histogram.json +6 -0
  21. package/examples/kaplan_meier.json +6 -0
  22. package/examples/line.json +11 -0
  23. package/examples/manhattan.json +7 -0
  24. package/examples/panels.json +28 -0
  25. package/examples/pca.json +12 -0
  26. package/examples/periodogram.json +7 -0
  27. package/examples/pie.json +4 -0
  28. package/examples/radar.json +7 -0
  29. package/examples/ridge.json +11 -0
  30. package/examples/roc.json +6 -0
  31. package/examples/sankey.json +9 -0
  32. package/examples/scatter3d.json +6 -0
  33. package/examples/slope.json +6 -0
  34. package/examples/stacked_bar.json +12 -0
  35. package/examples/surface.json +11 -0
  36. package/examples/taylor.json +9 -0
  37. package/examples/ternary.json +18 -0
  38. package/examples/venn.json +12 -0
  39. package/examples/violin.json +9 -0
  40. package/examples/volcano.json +7 -0
  41. package/examples/waterfall.json +5 -0
  42. package/examples/windrose.json +407 -0
  43. package/package.json +33 -4
  44. package/requirements.txt +9 -0
  45. package/scripts/add_chart.py +201 -0
  46. package/scripts/build_gallery.py +360 -0
  47. package/scripts/chart_plugin.py +153 -0
  48. package/scripts/data_loader.py +260 -0
  49. package/scripts/fig_3d.py +103 -0
  50. package/scripts/fig_area.py +57 -0
  51. package/scripts/fig_bar.py +117 -0
  52. package/scripts/fig_biomed.py +289 -0
  53. package/scripts/fig_box.py +60 -0
  54. package/scripts/fig_bubble.py +65 -0
  55. package/scripts/fig_core.py +195 -0
  56. package/scripts/fig_datasci.py +276 -0
  57. package/scripts/fig_distribution.py +59 -0
  58. package/scripts/fig_engineering.py +224 -0
  59. package/scripts/fig_environ.py +239 -0
  60. package/scripts/fig_errorbar.py +49 -0
  61. package/scripts/fig_forest.py +54 -0
  62. package/scripts/fig_heatmap.py +51 -0
  63. package/scripts/fig_line.py +39 -0
  64. package/scripts/fig_pca.py +101 -0
  65. package/scripts/fig_pie.py +52 -0
  66. package/scripts/fig_radar.py +32 -0
  67. package/scripts/fig_sankey.py +196 -0
  68. package/scripts/fig_scatter.py +44 -0
  69. package/scripts/fig_subplots.py +124 -0
  70. package/scripts/fig_taylor.py +80 -0
  71. package/scripts/fig_venn.py +80 -0
  72. package/scripts/fig_windrose.py +82 -0
  73. package/scripts/font_detector.py +85 -0
  74. package/scripts/gen_figure.py +583 -0
  75. package/scripts/generate_samples.py +322 -0
  76. package/scripts/palette_picker.py +244 -0
  77. package/scripts/palette_pref.py +179 -0
  78. package/scripts/palette_preview.py +334 -0
  79. package/scripts/palettes.py +461 -0
  80. package/scripts/registry.py +138 -0
  81. package/scripts/render_utils.py +233 -0
  82. package/scripts/showcase.py +179 -0
  83. package/scripts/style_manager.py +267 -0
package/LICENSE ADDED
@@ -0,0 +1,56 @@
1
+ LIKE Sci Figures — Source-Available License (v1.2.0)
2
+ Copyright (c) 2026 LIKE
3
+
4
+ -------------------------------------------------------------------------------
5
+ 本作品(LIKE Sci Figures / like-sci-figures,下称"本软件")
6
+ 基于 SkillHub 上 science-figures v1.0.1(MIT 兼容社区技能)二次开发而来。
7
+ 上游作者的原始版权与 MIT 许可条款随上游代码保留(见文末"上游归属"),
8
+ 本派生作品的增量贡献按本许可证发布。
9
+ -------------------------------------------------------------------------------
10
+
11
+ 授予的权利(允许)
12
+
13
+ 1. 个人与学术使用:为个人科研、教学、学术论文 / 学位论文 / 期刊投稿 / 会议
14
+ 海报 / 汇报材料的配图,安装、运行、复制、修改本软件。此类使用无需授权费。
15
+ 2. 平台分发:在 SkillHub 平台按其官方分发机制安装与分发本软件。
16
+ 3. 内部评估:为评估本软件是否适合某项目而进行的内部试用。
17
+
18
+ 限制(不得)
19
+
20
+ 4. 商业性再分发 / 转售:不得将本软件或其任何部分、修改版本,作为独立产品或
21
+ 服务的核心,进行商业性转售、再分发、出租或对外授权。
22
+ 5. 竞争性产品:不得将本软件的源码(或其修改版)用于开发、发布、销售任何与本
23
+ 软件构成竞争关系的产品 / 服务,或用于其他商业目的的产品化。
24
+ 6. 版权移除:不得移除或遮盖本软件中的版权声明、本许可证、水印标识。
25
+
26
+ 免责声明
27
+
28
+ 本软件按"AS IS"提供,不附带任何明示或暗示的担保,包括但不限于对适销性、
29
+ 特定用途适用性及非侵权的担保。在任何情况下,作者或版权持有人均不对任何
30
+ 索赔、损害或其他责任负责,无论是否因合同、侵权或其他原因引起,且无论是否
31
+ 源于本软件或本软件的使用或其他交易。
32
+
33
+ -------------------------------------------------------------------------------
34
+ 上游归属(MIT License,适用于 science-figures 原始贡献部分)
35
+
36
+ MIT License
37
+
38
+ Copyright (c) 上游作者(science-figures v1.0.1 原始权利持有人)
39
+
40
+ Permission is hereby granted, free of charge, to any person obtaining a copy
41
+ of this software and associated documentation files (the "Software"), to deal
42
+ in the Software without restriction, including without limitation the rights
43
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
44
+ copies of the Software, and to permit persons to whom the Software is
45
+ furnished to do so, subject to the following conditions:
46
+
47
+ The above copyright notice and this permission notice shall be included in all
48
+ copies or substantial portions of the Software.
49
+
50
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
51
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
52
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
53
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
54
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
55
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
56
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,197 @@
1
- # Temporary Holding Version
1
+ # like-sci-figures
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ > **出版级学术图表生成器**(Publication-quality academic figure generator)
4
+ > 40 种图表类型 · 11 种期刊风格 · 34 套科研配色 · 中文自动检测 · 300DPI 输出 · 纯本地运行
5
+
6
+ 从 JSON/CSV 数据一行命令生成出版级学术图表。基于 [scienceplots](https://github.com/garrettj403/SciencePlots) + [matplotlib](https://matplotlib.org/)。无 GUI、无云端,**数据不出本机**。适用于 SCI 论文、学位论文、期刊投稿、会议海报、科研报告及环境监测数据可视化配图。
7
+
8
+ ---
9
+
10
+ ## 中文说明
11
+
12
+ ### 安装
13
+
14
+ ```bash
15
+ npm install -g like-sci-figures
16
+ ```
17
+
18
+ ### 快速开始
19
+
20
+ ```bash
21
+ # 生成图表
22
+ like-sci-figures --type bar --data data.json --out figure.png --style nature
23
+ ```
24
+
25
+ ### 环境要求
26
+
27
+ - **Python 3.9+**(需在 PATH 中,或用 `LIKE_SCI_PYTHON` 指定路径)
28
+ - Python 依赖:`matplotlib`、`numpy`、`scipy`、`pillow`
29
+
30
+ ```bash
31
+ python -m pip install -r requirements.txt
32
+ # 可选:启用 LaTeX 级期刊风格(内置等效样式会自动后备,不影响基础出图)
33
+ pip install scienceplots
34
+ ```
35
+
36
+ ### 特性
37
+
38
+ - **40 种图表类型**:柱状图、分组柱状图、堆叠柱状图、热力图、散点图、折线图、箱线图、小提琴图、森林图、直方图、密度图、饼图、环形图、雷达图、3D 曲面、等高线图、3D 散点、气泡图、面积图/堆叠面积、误差棒图、韦恩图、PCA 双标图、风玫瑰图、Taylor 图、桑基图、多面板子图、火山图、曼哈顿图、Kaplan-Meier、ROC、脊线图、三元图、点图、树状图、斜率图、瀑布图、Bode 图、周期图、相关矩阵、六边形密度图、经验累积分布(ECDF)、Bland-Altman 一致性分析
39
+ - **11 种期刊风格**:Nature、Science、IEEE、Springer、Lancet、ACS、APS、AAAS、Cell、NEJM、MDPI
40
+ - **34 套科研配色**:定性 / 顺序 / 发散色带,通过 `--palette` 选择,或传入自定义十六进制列表
41
+ - **中文自动检测**:需要时自动加载中 / 日 / 韩字体,中文标签不出豆腐块
42
+ - **输出格式**:PNG / SVG / PDF,默认 300 DPI(可用 `--dpi` 调整)
43
+
44
+ ### CLI 用法
45
+
46
+ ```bash
47
+ like-sci-figures --type <图表> --data <file.json|csv> --out <output.png|svg|pdf> [选项]
48
+ ```
49
+
50
+ | 选项 | 说明 |
51
+ | --- | --- |
52
+ | `--type, -t` | 图表类型(必填),见下方列表 |
53
+ | `--data, -d` | 输入数据文件(JSON 或 CSV) |
54
+ | `--out, -o` | 输出路径(`.png` / `.svg` / `.pdf`) |
55
+ | `--title` | 图标题(用 `\n` 换行) |
56
+ | `--xlabel` / `--ylabel` | X / Y 轴标签 |
57
+ | `--style, -s` | 期刊风格(默认 `nature`) |
58
+ | `--palette, -p` | 配色 slug 或自定义十六进制列表 |
59
+ | `--dpi` | 输出分辨率(默认 300) |
60
+ | `--list-styles` | 列出可用期刊风格并退出 |
61
+ | `--list-palettes` | 列出可用配色并退出 |
62
+ | `--verify-all` | 运行引擎完整自检 |
63
+
64
+ ### 图表类型
65
+
66
+ `bar` `grouped bar` `stacked bar` `heatmap` `scatter` `line` `box` `violin` `forest` `histogram` `density` `pie` `donut` `radar` `surface` `contour` `scatter3d` `bubble` `area` `errorbar` `venn` `pca` `windrose` `taylor` `sankey` `subplots` `volcano` `manhattan` `kaplan_meier` `roc` `ridge` `ternary` `dotplot` `dendrogram` `slope` `waterfall` `bode` `periodogram` `corr_matrix` `hexbin` `ecdf` `bland_altman`
67
+
68
+ ### 示例
69
+
70
+ ```bash
71
+ # Nature 风格柱状图,标注数值
72
+ like-sci-figures --type bar --data data.json --out figure.png --style nature --show-values
73
+
74
+ # 相关矩阵热力图(发散配色)
75
+ like-sci-figures --type corr_matrix --data corr.json --out corr.png --palette wx06_amber_navy
76
+
77
+ # 六边形密度图,自动加 1:1 线与 r/RMSE 角标
78
+ like-sci-figures --type hexbin --data obs.json --out hex.png --style cell --palette viridis
79
+
80
+ # 多面板子图
81
+ like-sci-figures --type subplots --data panel.json --out grid.png --layout 2x3 --style ieee
82
+ ```
83
+
84
+ ### 数据格式
85
+
86
+ JSON/CSV,schema 随图表类型自适应。柱状图示例:
87
+
88
+ ```json
89
+ {
90
+ "categories": ["PM2.5", "PM10", "SO2", "NO2"],
91
+ "values": [38.2, 61.4, 9.1, 24.6],
92
+ "errors": [3.1, 4.2, 0.8, 2.0]
93
+ }
94
+ ```
95
+
96
+ ### 环境变量
97
+
98
+ - `LIKE_SCI_PYTHON` — 指定 Python 解释器路径(默认使用 PATH 上的 `python` / `python3`)
99
+
100
+ ### 许可证
101
+
102
+ Source-Available License(见 `LICENSE`)。允许个人与学术非商业使用;禁止商业性再分发与竞品产品化;保留上游 MIT 归属。
103
+
104
+ ---
105
+
106
+ ## English
107
+
108
+ ### Installation
109
+
110
+ ```bash
111
+ npm install -g like-sci-figures
112
+ ```
113
+
114
+ ### Quick start
115
+
116
+ ```bash
117
+ like-sci-figures --type bar --data data.json --out figure.png --style nature
118
+ ```
119
+
120
+ ### Requirements
121
+
122
+ - **Python 3.9+** (on PATH, or set `LIKE_SCI_PYTHON`)
123
+ - Python dependencies: `matplotlib`, `numpy`, `scipy`, `pillow`
124
+
125
+ ```bash
126
+ python -m pip install -r requirements.txt
127
+ # Optional: enable LaTeX-grade journal styles (built-in equivalent styles fall back automatically)
128
+ pip install scienceplots
129
+ ```
130
+
131
+ ### Features
132
+
133
+ - **40 chart types**: bar, grouped bar, stacked bar, heatmap, scatter, line, box, violin, forest, histogram, density, pie, donut, radar, 3D surface, contour, 3D scatter, bubble, area/stacked-area, error-bar, Venn, PCA biplot, wind rose, Taylor diagram, Sankey, multi-panel subplots, volcano, Manhattan, Kaplan-Meier, ROC, ridge, ternary, dot plot, dendrogram, slope, waterfall, Bode, periodogram, correlation matrix, hexbin density, ECDF, Bland-Altman
134
+ - **11 journal styles**: Nature, Science, IEEE, Springer, Lancet, ACS, APS, AAAS, Cell, NEJM, MDPI
135
+ - **34 curated color palettes**: qualitative / sequential / diverging sets via `--palette`, or pass your own hex list
136
+ - **CJK auto-detection**: automatically loads Chinese/Japanese/Korean fonts when needed
137
+ - **Output**: PNG / SVG / PDF at 300 DPI (adjustable via `--dpi`)
138
+
139
+ ### CLI Usage
140
+
141
+ ```bash
142
+ like-sci-figures --type <chart> --data <file.json|csv> --out <output.png|svg|pdf> [options]
143
+ ```
144
+
145
+ | Option | Description |
146
+ | --- | --- |
147
+ | `--type, -t` | Chart type (required). See full list below. |
148
+ | `--data, -d` | Input data file (JSON or CSV) |
149
+ | `--out, -o` | Output path (`.png` / `.svg` / `.pdf`) |
150
+ | `--title` | Figure title (use `\n` for newline) |
151
+ | `--xlabel` / `--ylabel` | Axis labels |
152
+ | `--style, -s` | Journal style (default `nature`) |
153
+ | `--palette, -p` | Color palette slug or custom hex list |
154
+ | `--dpi` | Output resolution (default 300) |
155
+ | `--list-styles` | List available journal styles and exit |
156
+ | `--list-palettes` | List available palettes and exit |
157
+ | `--verify-all` | Run full engine self-check |
158
+
159
+ ### Chart types
160
+
161
+ `bar` `grouped bar` `stacked bar` `heatmap` `scatter` `line` `box` `violin` `forest` `histogram` `density` `pie` `donut` `radar` `surface` `contour` `scatter3d` `bubble` `area` `errorbar` `venn` `pca` `windrose` `taylor` `sankey` `subplots` `volcano` `manhattan` `kaplan_meier` `roc` `ridge` `ternary` `dotplot` `dendrogram` `slope` `waterfall` `bode` `periodogram` `corr_matrix` `hexbin` `ecdf` `bland_altman`
162
+
163
+ ### Examples
164
+
165
+ ```bash
166
+ # Nature-style bar chart with value labels
167
+ like-sci-figures --type bar --data data.json --out figure.png --style nature --show-values
168
+
169
+ # Correlation matrix heatmap (diverging palette)
170
+ like-sci-figures --type corr_matrix --data corr.json --out corr.png --palette wx06_amber_navy
171
+
172
+ # Hexbin density plot with 1:1 line
173
+ like-sci-figures --type hexbin --data obs.json --out hex.png --style cell --palette viridis
174
+
175
+ # Multi-panel subplots
176
+ like-sci-figures --type subplots --data panel.json --out grid.png --layout 2x3 --style ieee
177
+ ```
178
+
179
+ ### Data Format
180
+
181
+ JSON/CSV with a flexible schema that adapts to each chart type. Example for a bar chart:
182
+
183
+ ```json
184
+ {
185
+ "categories": ["PM2.5", "PM10", "SO2", "NO2"],
186
+ "values": [38.2, 61.4, 9.1, 24.6],
187
+ "errors": [3.1, 4.2, 0.8, 2.0]
188
+ }
189
+ ```
190
+
191
+ ### Environment
192
+
193
+ - `LIKE_SCI_PYTHON` — path to a specific Python interpreter (default: `python` / `python3` on PATH)
194
+
195
+ ### License
196
+
197
+ Source-Available License (see `LICENSE`). Personal and academic use permitted; commercial redistribution and competing productization prohibited. Upstream MIT attribution preserved.
package/cli.js ADDED
@@ -0,0 +1,79 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ /**
5
+ * like-sci-figures — npm CLI 入口
6
+ *
7
+ * 本包是 Python 图表引擎(skill/scripts/)的轻量 Node 包装器:
8
+ * 定位 Python 解释器 → 检查依赖 → 透传全部参数给 scripts/gen_figure.py。
9
+ * 引擎本身是纯 Python(matplotlib + scienceplots),本文件只负责调度与报错。
10
+ *
11
+ * 环境变量:
12
+ * LIKE_SCI_PYTHON 指定 Python 解释器路径(默认依次尝试 python / python3)
13
+ */
14
+
15
+ const { spawn, spawnSync } = require('child_process');
16
+ const path = require('path');
17
+ const fs = require('fs');
18
+
19
+ const PKG_DIR = __dirname;
20
+ const ENGINE = path.join(PKG_DIR, 'scripts', 'gen_figure.py');
21
+ const REQ_FILE = path.join(PKG_DIR, 'requirements.txt');
22
+
23
+ function findPython() {
24
+ const candidates = [];
25
+ if (process.env.LIKE_SCI_PYTHON) candidates.push(process.env.LIKE_SCI_PYTHON);
26
+ candidates.push('python', 'python3');
27
+ for (const c of candidates) {
28
+ try {
29
+ const r = spawnSync(c, ['--version'], { encoding: 'utf8' });
30
+ if (r.status === 0) return { cmd: c, viaEnv: c === process.env.LIKE_SCI_PYTHON };
31
+ } catch (e) { /* keep trying */ }
32
+ }
33
+ return null;
34
+ }
35
+
36
+ function checkDeps(py) {
37
+ const r = spawnSync(
38
+ py,
39
+ ['-c', 'import matplotlib, numpy, scipy, PIL, sys'],
40
+ { encoding: 'utf8' }
41
+ );
42
+ if (r.status === 0) return null;
43
+ return (r.stderr || r.stdout || '').trim();
44
+ }
45
+
46
+ const py = findPython();
47
+ if (!py) {
48
+ console.error(
49
+ '[like-sci-figures] 未找到 Python 解释器。\n' +
50
+ ' 请安装 Python 3.9+ 并加入 PATH,或通过环境变量指定:\n' +
51
+ ' set LIKE_SCI_PYTHON=C:\\path\\to\\python.exe (Windows)\n' +
52
+ ' export LIKE_SCI_PYTHON=/usr/bin/python3 (macOS/Linux)'
53
+ );
54
+ process.exit(1);
55
+ }
56
+
57
+ const depErr = checkDeps(py.cmd);
58
+ if (depErr) {
59
+ console.error(
60
+ '[like-sci-figures] Python 依赖缺失(matplotlib / numpy / scipy / pillow)。\n' +
61
+ ' 请安装依赖:\n' +
62
+ ' ' + py.cmd + ' -m pip install -r ' + REQ_FILE + '\n' +
63
+ ' 缺失详情:\n' + depErr
64
+ );
65
+ process.exit(1);
66
+ }
67
+
68
+ if (!fs.existsSync(ENGINE)) {
69
+ console.error('[like-sci-figures] 引擎缺失:' + ENGINE);
70
+ process.exit(1);
71
+ }
72
+
73
+ // 透传所有 CLI 参数给 Python 引擎;stdin/out/err 继承
74
+ const child = spawn(py.cmd, [ENGINE, ...process.argv.slice(2)], { stdio: 'inherit' });
75
+ child.on('error', (err) => {
76
+ console.error('[like-sci-figures] 无法启动引擎:' + err.message);
77
+ process.exit(1);
78
+ });
79
+ child.on('exit', (code) => process.exit(code === null ? 0 : code));
@@ -0,0 +1,9 @@
1
+ {
2
+ "labels": ["Jan", "Feb", "Mar", "Apr", "May"],
3
+ "series": {
4
+ "Coal": [20, 25, 30, 28, 22],
5
+ "Vehicle": [15, 18, 22, 25, 30],
6
+ "Dust": [10, 12, 11, 13, 14]
7
+ },
8
+ "stacked": true
9
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "labels": ["Control", "Treat A", "Treat B", "Treat C"],
3
+ "series": {
4
+ "Metric 1": [12.5, 18.3, 15.2, 21.0],
5
+ "Metric 2": [10.0, 14.5, 16.8, 19.2]
6
+ },
7
+ "errors": {
8
+ "Metric 1": [1.2, 0.8, 1.5, 1.1],
9
+ "Metric 2": [0.9, 1.1, 0.7, 1.3]
10
+ },
11
+ "significance": {
12
+ "0,1": "**",
13
+ "2,3": "NS"
14
+ }
15
+ }
@@ -0,0 +1,128 @@
1
+ {
2
+ "x": [
3
+ 92.25,
4
+ 52.07,
5
+ 87.9,
6
+ 60.94,
7
+ 106.17,
8
+ 93.52,
9
+ 26.69,
10
+ 97.63,
11
+ 52.85,
12
+ 37.96,
13
+ 76.95,
14
+ 61.01,
15
+ 56.33,
16
+ 21.77,
17
+ 102.22,
18
+ 37.14,
19
+ 24.13,
20
+ 67.97,
21
+ 30.3,
22
+ 87.78,
23
+ 60.87,
24
+ 43.87,
25
+ 31.65,
26
+ 112.2,
27
+ 96.59,
28
+ 27.32,
29
+ 112.21,
30
+ 100.12,
31
+ 40.1,
32
+ 107.61,
33
+ 84.21,
34
+ 51.36,
35
+ 61.6,
36
+ 85.33,
37
+ 25.26,
38
+ 41.33,
39
+ 72.81,
40
+ 38.59,
41
+ 102.61,
42
+ 41.36,
43
+ 28.11,
44
+ 109.03,
45
+ 37.69,
46
+ 98.02,
47
+ 78.55,
48
+ 68.99,
49
+ 64.31,
50
+ 100.46,
51
+ 107.38,
52
+ 75.49,
53
+ 100.84,
54
+ 117.13,
55
+ 101.2,
56
+ 79.24,
57
+ 33.96,
58
+ 44.54,
59
+ 54.81,
60
+ 26.09,
61
+ 65.68,
62
+ 41.88
63
+ ],
64
+ "y": [
65
+ 94.61,
66
+ 48.7,
67
+ 93.2,
68
+ 61.48,
69
+ 111.44,
70
+ 89.42,
71
+ 28.78,
72
+ 98.9,
73
+ 54.84,
74
+ 42.74,
75
+ 78.88,
76
+ 69.11,
77
+ 61.2,
78
+ 14.92,
79
+ 102.57,
80
+ 35.09,
81
+ 28.34,
82
+ 69.28,
83
+ 27.53,
84
+ 88.61,
85
+ 57.2,
86
+ 50.58,
87
+ 34.6,
88
+ 108.47,
89
+ 105.92,
90
+ 34.64,
91
+ 114.24,
92
+ 104.52,
93
+ 34.34,
94
+ 104.27,
95
+ 87.35,
96
+ 51.39,
97
+ 65.13,
98
+ 92.97,
99
+ 27.89,
100
+ 42.84,
101
+ 68.38,
102
+ 25.51,
103
+ 102.02,
104
+ 33.35,
105
+ 22.69,
106
+ 106.13,
107
+ 32.06,
108
+ 102.26,
109
+ 80.65,
110
+ 70.51,
111
+ 67.75,
112
+ 98.65,
113
+ 106.84,
114
+ 75.5,
115
+ 101.98,
116
+ 112.54,
117
+ 108.48,
118
+ 80.27,
119
+ 34.51,
120
+ 45.55,
121
+ 53.67,
122
+ 23.19,
123
+ 70.97,
124
+ 45.5
125
+ ],
126
+ "xlabel": "Mean of two analyzers (ug/m3)",
127
+ "ylabel": "Difference (Analyzer1 - Analyzer2)"
128
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "freq": [0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1.0, 2.0, 5.0, 10.0, 20.0, 50.0, 100.0],
3
+ "mag": [60, 55, 48, 40, 30, 20, 10, 0, -10, -20, -30, -40, -50],
4
+ "phase": [0, 0, -10, -30, -45, -60, -75, -85, -95, -105, -115, -125, -135],
5
+ "gain_db": true,
6
+ "phase_deg": true,
7
+ "freq_hz": true
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "labels": ["对照组", "处理A", "处理B"],
3
+ "series": {
4
+ "对照组": [10, 12, 11, 13, 10, 14, 9, 11],
5
+ "处理A": [8, 9, 10, 7, 11, 9, 8, 10],
6
+ "处理B": [13, 15, 14, 16, 13, 15, 14, 17]
7
+ }
8
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "x": [1, 2, 3, 4, 5, 6],
3
+ "y": [2, 3, 1, 4, 2, 5],
4
+ "sizes": [10, 40, 25, 80, 15, 60],
5
+ "groups": ["A", "B", "A", "B", "A", "B"],
6
+ "labels": ["s1", "s2", "s3", "s4", "s5", "s6"]
7
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "matrix": [
3
+ [10, 5, 3, 1],
4
+ [8, 12, 2, 0],
5
+ [1, 7, 15, 2],
6
+ [0, 3, 5, 8]
7
+ ],
8
+ "x": [0, 1, 2, 3],
9
+ "y": [0, 1, 2, 3]
10
+ }
@@ -0,0 +1,99 @@
1
+ {
2
+ "series": {
3
+ "PM2.5": [
4
+ -0.94,
5
+ 0.44,
6
+ -1.97,
7
+ 1.35,
8
+ 0.83,
9
+ 0.26,
10
+ -0.53,
11
+ 0.71,
12
+ -0.64,
13
+ -0.17,
14
+ 0.37,
15
+ 0.92,
16
+ 0.19,
17
+ 0.26,
18
+ -0.1,
19
+ -0.41,
20
+ -0.56,
21
+ 0.41,
22
+ 0.02,
23
+ -1.11
24
+ ],
25
+ "PM10": [
26
+ -0.45,
27
+ -0.15,
28
+ -1.74,
29
+ 1.7,
30
+ 0.74,
31
+ 0.16,
32
+ 0.87,
33
+ -0.2,
34
+ 1.09,
35
+ 1.42,
36
+ 1.31,
37
+ 0.77,
38
+ -0.38,
39
+ 0.44,
40
+ -0.11,
41
+ -0.44,
42
+ -0.43,
43
+ 0.53,
44
+ 0.55,
45
+ -1.24
46
+ ],
47
+ "SO2": [
48
+ -0.02,
49
+ -0.65,
50
+ 0.65,
51
+ -1.55,
52
+ -0.84,
53
+ 0.82,
54
+ -0.11,
55
+ -0.05,
56
+ -0.45,
57
+ 0.22,
58
+ -1.3,
59
+ -0.66,
60
+ 1.17,
61
+ -0.24,
62
+ 0.46,
63
+ 0.6,
64
+ 0.17,
65
+ -0.66,
66
+ 0.72,
67
+ 0.74
68
+ ],
69
+ "NO2": [
70
+ 1.53,
71
+ -0.72,
72
+ 0.06,
73
+ 0.47,
74
+ 0.37,
75
+ -1.23,
76
+ -0.66,
77
+ -0.2,
78
+ -0.85,
79
+ 0.68,
80
+ 0.59,
81
+ -1.96,
82
+ -1.81,
83
+ -1.28,
84
+ 0.12,
85
+ 2.03,
86
+ -0.38,
87
+ 0.25,
88
+ -1.06,
89
+ -1.05
90
+ ]
91
+ },
92
+ "labels": [
93
+ "PM2.5",
94
+ "PM10",
95
+ "SO2",
96
+ "NO2"
97
+ ],
98
+ "method": "pearson"
99
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "leaves": ["Gene A", "Gene B", "Gene C", "Gene D", "Gene E", "Gene F"],
3
+ "merges": [[0, 1, 1.2], [2, 3, 1.8], [4, 5, 2.5], [0, 2, 3.0], [0, 4, 3.5]],
4
+ "threshold": 3.0
5
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "series": {
3
+ "对照组": [1.2, 2.3, 2.1, 3.4, 2.8, 3.1, 2.9, 2.2, 2.6, 3.0, 2.4, 2.7],
4
+ "处理组": [3.1, 3.9, 4.2, 3.5, 4.4, 3.7, 4.0, 3.3, 4.1, 3.8, 3.6, 4.3],
5
+ "对照": [1.2, 2.3, 2.1, 3.4, 2.8, 3.1, 2.9, 2.2, 2.6, 3.0, 2.4, 2.7],
6
+ "处理": [3.1, 3.9, 4.2, 3.5, 4.4, 3.7, 4.0, 3.3, 4.1, 3.8, 3.6, 4.3]
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "x": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
3
+ "y": [2.1, 2.5, 2.3, 2.8, 3.0, 2.7, 3.2, 3.5, 3.1, 3.8, 1.5, 1.8, 1.6, 2.0, 2.2, 1.9, 2.4, 2.7, 2.3, 3.0],
4
+ "labels": ["P1", "P2", "P3", "P4", "P5", "P6", "P7", "P8", "P9", "P10", "P11", "P12", "P13", "P14", "P15", "P16", "P17", "P18", "P19", "P20"],
5
+ "group": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
6
+ "size": [50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50],
7
+ "color_by": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
8
+ }