176 lines
5.3 KiB
Markdown
176 lines
5.3 KiB
Markdown
|
|
# 图表配置完整参考
|
||
|
|
|
||
|
|
## config.json 完整格式
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"text_data": {
|
||
|
|
"标题": "2024年度投资报告",
|
||
|
|
"日期": "2024-12-05",
|
||
|
|
"组合名": "稳健增长组合"
|
||
|
|
},
|
||
|
|
"chart_configs": {
|
||
|
|
"图表名": {
|
||
|
|
"csv_path": "data.csv",
|
||
|
|
"categories_col": "日期",
|
||
|
|
"series_config": [...],
|
||
|
|
"style": {...},
|
||
|
|
"layout": {...}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## series_config 系列配置
|
||
|
|
|
||
|
|
每个系列是一个字典:
|
||
|
|
|
||
|
|
```json
|
||
|
|
[
|
||
|
|
{"key": "沪深300指数", "name": "沪深300指数", "type": "bar", "axis": "secondary"},
|
||
|
|
{"key": "组合收益率", "name": "组合收益率", "type": "line", "axis": "primary"}
|
||
|
|
]
|
||
|
|
```
|
||
|
|
|
||
|
|
| 字段 | 说明 | 可选值 |
|
||
|
|
|------|------|--------|
|
||
|
|
| `key` | CSV 中的列名 | 任意字符串 |
|
||
|
|
| `name` | 图例中的显示名 | 任意字符串 |
|
||
|
|
| `type` | 图表类型 | `bar`, `line`, `area` |
|
||
|
|
| `axis` | 绑定轴 | `primary`(左轴), `secondary`(右轴) |
|
||
|
|
|
||
|
|
## style 样式配置
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"color_scheme": "aim00",
|
||
|
|
"line_width_pt": 2.0,
|
||
|
|
"marker_style": "none"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
| 字段 | 说明 | 可选值 |
|
||
|
|
|------|------|--------|
|
||
|
|
| `color_scheme` | 颜色方案 | 见下方配色方案表 |
|
||
|
|
| `line_width_pt` | 折线宽度(pt) | `0.5`, `0.75`, `1.0`, `1.5`, `2.0`, `2.25`, `3.0` |
|
||
|
|
| `marker_style` | 标记点样式 | `none`, `circle`, `square`, `diamond`, `triangle` |
|
||
|
|
| `marker_size` | 标记点大小(pt) | 数字,默认 `5` |
|
||
|
|
|
||
|
|
### 配色方案完整表
|
||
|
|
|
||
|
|
| 名称 | 色值 (hex) | 说明 |
|
||
|
|
|------|-----------|------|
|
||
|
|
| `aim00` | `C0C0C0` `C00000` `305496` `808080` | 对比色:浅灰柱状图 + 深红折线 |
|
||
|
|
| `default` | `C00000` `0070C0` `ED7D31` `595959` `FF9999` `9DC3E6` `F4B183` `BFBFBF` | 深浅交替通用 |
|
||
|
|
| `dark_only` | `C00000` `0070C0` `ED7D31` `595959` | 深色系4色 |
|
||
|
|
| `light_only` | `FF9999` `9DC3E6` `F4B183` `BFBFBF` | 浅色系4色 |
|
||
|
|
| `red_series` | `C00000` `FF9999` | 深红+浅红 |
|
||
|
|
| `blue_series` | `0070C0` `9DC3E6` | 深蓝+浅蓝 |
|
||
|
|
| `orange_series` | `ED7D31` `F4B183` | 深橙+浅橙 |
|
||
|
|
| `gray_series` | `595959` `BFBFBF` | 深灰+浅灰 |
|
||
|
|
|
||
|
|
颜色按系列索引循环使用。
|
||
|
|
|
||
|
|
## layout 布局配置
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"title": "组合2024年以来收益率走势图",
|
||
|
|
"legend": {
|
||
|
|
"position": "top",
|
||
|
|
"font_size_pt": 9,
|
||
|
|
"font_name": "黑体"
|
||
|
|
},
|
||
|
|
"value_axis": {
|
||
|
|
"number_format": "0%",
|
||
|
|
"font_size_pt": 9,
|
||
|
|
"font_name": "黑体",
|
||
|
|
"has_major_gridlines": false,
|
||
|
|
"min_value": 0.0,
|
||
|
|
"max_value": 1.0,
|
||
|
|
"major_unit": 0.1
|
||
|
|
},
|
||
|
|
"secondary_value_axis": {
|
||
|
|
"number_format": "#,##0",
|
||
|
|
"font_size_pt": 9,
|
||
|
|
"font_name": "黑体",
|
||
|
|
"has_major_gridlines": false,
|
||
|
|
"min_value": 2950,
|
||
|
|
"max_value": 4450,
|
||
|
|
"major_unit": 200
|
||
|
|
},
|
||
|
|
"date_axis": {
|
||
|
|
"base_unit": "days",
|
||
|
|
"major_unit": 30,
|
||
|
|
"number_format": "yyyy/mm"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### legend 图例
|
||
|
|
|
||
|
|
| 字段 | 说明 | 可选值 |
|
||
|
|
|------|------|--------|
|
||
|
|
| `position` | 位置 | `top`, `bottom`, `left`, `right`, `corner` |
|
||
|
|
| `font_size_pt` | 字体大小 | 数字 |
|
||
|
|
| `font_name` | 字体名 | `"黑体"`, `"宋体"` 等 |
|
||
|
|
|
||
|
|
### value_axis / secondary_value_axis 数值轴
|
||
|
|
|
||
|
|
| 字段 | 说明 | 示例 |
|
||
|
|
|------|------|------|
|
||
|
|
| `number_format` | 数字格式 | `"0%"`, `"#,##0"`, `"0.00"` |
|
||
|
|
| `font_size_pt` | 字体大小 | `9` |
|
||
|
|
| `font_name` | 字体名 | `"黑体"` |
|
||
|
|
| `has_major_gridlines` | 主网格线 | `true`/`false` |
|
||
|
|
| `min_value` | 轴最小值 | 数字(可选) |
|
||
|
|
| `max_value` | 轴最大值 | 数字(可选) |
|
||
|
|
| `major_unit` | 主刻度间隔 | 数字(可选) |
|
||
|
|
|
||
|
|
### date_axis 日期轴
|
||
|
|
|
||
|
|
| 字段 | 说明 | 示例 |
|
||
|
|
|------|------|------|
|
||
|
|
| `base_unit` | 基础单位 | `"days"`, `"months"`, `"years"` |
|
||
|
|
| `major_unit` | 主刻度间隔 | 数字(标签间隔数据点数)|
|
||
|
|
| `number_format` | 日期格式 | `"yyyy/mm"`, `"yyyy-mm-dd"`, `"mm-dd"` |
|
||
|
|
|
||
|
|
如果省略 `major_unit`,默认使用 `len(df) // 7`(约显示 7 个标签)。
|
||
|
|
|
||
|
|
### 日期轴预设
|
||
|
|
|
||
|
|
可在代码中直接使用预设,无需手动配置:
|
||
|
|
|
||
|
|
| 预设名 | 间隔 | 格式 | 适用数据量 |
|
||
|
|
|--------|------|------|-----------|
|
||
|
|
| `DAILY_TICKS` | 每天 | `mm-dd` | 1-30天 |
|
||
|
|
| `WEEKLY_TICKS` | 每周 | `yyyy-mm-dd` | 1-6个月 |
|
||
|
|
| `BIWEEKLY_TICKS` | 每两周 | `yyyy-mm-dd` | 季度 |
|
||
|
|
| `MONTHLY_TICKS` | 每月 | `yyyy-mm` | 年度 |
|
||
|
|
| `QUARTERLY_TICKS` | 每季度 | `yyyy-mm` | 多年 |
|
||
|
|
| `YEARLY_TICKS` | 每年 | `yyyy` | 长期 |
|
||
|
|
|
||
|
|
### 养老金图表预设
|
||
|
|
|
||
|
|
4 个内置预设函数,传入 DataFrame 即返回完整配置:
|
||
|
|
|
||
|
|
| 预设 | 函数 | 系列类型 | 所需 CSV 列 |
|
||
|
|
|------|------|----------|-------------|
|
||
|
|
| 当年收益率走势 | `get_chart1_config(df)` | bar(右)+line(左) | `分类`, `沪深300指数(收盘价)`, `组合收益率(左轴)` |
|
||
|
|
| 成立以来收益率 | `get_chart2_config(df)` | area(右)+line(左) | `分类`, `组合规模(万元)`, `累计收益率` |
|
||
|
|
| 权益仓位走势 | `get_chart3_config(df)` | area(右)+line(左) | `分类`, `沪深300指数(收盘价)`, `权益仓位(人社部口径)` |
|
||
|
|
| 久期走势 | `get_chart4_config(df)` | bar(右)+line(左) | `分类`, `中债新综合总财富指数(收盘价)`, `久期` |
|
||
|
|
|
||
|
|
使用 `scripts/list_presets.py --all` 可查询所有可用预设的完整信息。
|
||
|
|
|
||
|
|
## CSV 数据文件格式
|
||
|
|
|
||
|
|
第一列为分类列(通常是日期),后续列为数据系列:
|
||
|
|
|
||
|
|
```csv
|
||
|
|
日期,沪深300指数,组合收益率
|
||
|
|
2024-01-02,3500,0.001
|
||
|
|
2024-01-03,3520,0.005
|
||
|
|
...
|
||
|
|
```
|