In gestapelten Balken mit vielen Kategorien überlagerten sich die Segment-Beschriftungen, sichtbar blieb ein zufälliger kleiner Wert. Betrifft Monat nach Kategorie und Planung nach Kategorie. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
200 lines
5.5 KiB
JSON
200 lines
5.5 KiB
JSON
{
|
|
"uid": "finanzen",
|
|
"title": "Finanzen",
|
|
"schemaVersion": 39,
|
|
"version": 1,
|
|
"editable": true,
|
|
"timezone": "browser",
|
|
"tags": ["finanzen"],
|
|
"time": {
|
|
"from": "now-1y",
|
|
"to": "now+19M"
|
|
},
|
|
"refresh": "",
|
|
"panels": [
|
|
{
|
|
"id": 1,
|
|
"type": "timeseries",
|
|
"title": "Kontostand-Verlauf",
|
|
"datasource": {
|
|
"type": "postgres",
|
|
"uid": "FinanzDB"
|
|
},
|
|
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 0 },
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 0,
|
|
"lineInterpolation": "stepAfter",
|
|
"spanNulls": true
|
|
},
|
|
"unit": "currencyEUR"
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": { "displayMode": "list", "placement": "bottom" },
|
|
"tooltip": { "mode": "multi" }
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"datasource": {
|
|
"type": "postgres",
|
|
"uid": "FinanzDB"
|
|
},
|
|
"format": "time_series",
|
|
"rawSql": "SELECT day AS time, account AS metric, balance AS value FROM v_balance_history ORDER BY day",
|
|
"rawQuery": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 2,
|
|
"type": "timeseries",
|
|
"title": "Gesamt-Saldo",
|
|
"datasource": {
|
|
"type": "postgres",
|
|
"uid": "FinanzDB"
|
|
},
|
|
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 0 },
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineWidth": 2,
|
|
"fillOpacity": 10,
|
|
"lineInterpolation": "stepAfter",
|
|
"spanNulls": true
|
|
},
|
|
"unit": "currencyEUR"
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": { "displayMode": "list", "placement": "bottom" },
|
|
"tooltip": { "mode": "single" }
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"datasource": {
|
|
"type": "postgres",
|
|
"uid": "FinanzDB"
|
|
},
|
|
"format": "time_series",
|
|
"rawSql": "SELECT day AS time, balance AS value FROM v_balance_total ORDER BY day",
|
|
"rawQuery": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 3,
|
|
"type": "barchart",
|
|
"title": "Monat nach Kategorie",
|
|
"datasource": {
|
|
"type": "postgres",
|
|
"uid": "FinanzDB"
|
|
},
|
|
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 8 },
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "currencyEUR"
|
|
},
|
|
"overrides": [{ "matcher": { "id": "byType", "options": "time" }, "properties": [{ "id": "unit", "value": "time:MM.YYYY" }] }]
|
|
},
|
|
"options": {
|
|
"legend": { "displayMode": "list", "placement": "bottom" },
|
|
"stacking": "normal",
|
|
"xTickLabelRotation": 0,
|
|
"showValue": "never",
|
|
"tooltip": { "mode": "multi", "sort": "asc" }
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"datasource": {
|
|
"type": "postgres",
|
|
"uid": "FinanzDB"
|
|
},
|
|
"format": "time_series",
|
|
"rawSql": "SELECT month AS time, category AS metric, total AS value FROM v_monthly_by_category ORDER BY month",
|
|
"rawQuery": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 4,
|
|
"type": "timeseries",
|
|
"title": "Szenario-Vergleich",
|
|
"datasource": {
|
|
"type": "postgres",
|
|
"uid": "FinanzDB"
|
|
},
|
|
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 8 },
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"custom": {
|
|
"drawStyle": "line",
|
|
"lineWidth": 1,
|
|
"fillOpacity": 0,
|
|
"thresholdsStyle": { "mode": "line" }
|
|
},
|
|
"unit": "currencyEUR",
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{ "color": "red", "value": null },
|
|
{ "color": "orange", "value": 0 },
|
|
{ "color": "green", "value": 500 }
|
|
]
|
|
}
|
|
},
|
|
"overrides": []
|
|
},
|
|
"options": {
|
|
"legend": { "displayMode": "list", "placement": "bottom" },
|
|
"tooltip": { "mode": "multi" }
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"datasource": {
|
|
"type": "postgres",
|
|
"uid": "FinanzDB"
|
|
},
|
|
"format": "time_series",
|
|
"rawSql": "SELECT day AS time, scenario AS metric, balance AS value FROM v_projection ORDER BY day",
|
|
"rawQuery": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 5,
|
|
"type": "barchart",
|
|
"title": "Planung nach Kategorie",
|
|
"datasource": { "type": "postgres", "uid": "FinanzDB" },
|
|
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 16 },
|
|
"fieldConfig": { "defaults": { "unit": "currencyEUR" }, "overrides": [{ "matcher": { "id": "byType", "options": "time" }, "properties": [{ "id": "unit", "value": "time:MM.YYYY" }] }] },
|
|
"options": {
|
|
"legend": { "displayMode": "list", "placement": "bottom" },
|
|
"stacking": "normal",
|
|
"xTickLabelRotation": 0,
|
|
"showValue": "never",
|
|
"tooltip": { "mode": "multi", "sort": "asc" }
|
|
},
|
|
"targets": [
|
|
{
|
|
"refId": "A",
|
|
"datasource": { "type": "postgres", "uid": "FinanzDB" },
|
|
"format": "time_series",
|
|
"rawSql": "SELECT month AS time, category AS metric, total AS value FROM planning_monthly ORDER BY month",
|
|
"rawQuery": true
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|