From Dark and Darker Wiki
(Testing script output.) |
(Attempting to make y-axis label larger.) |
||
(23 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
<includeonly> | <includeonly> | ||
<div> | <div style="aspect-ratio: 2"> | ||
<canvas id="<!--{$uniqueId|escape:'html'}-->"></canvas> | |||
</div> | </div> | ||
<script> | <script> | ||
var datasets = JSON.parse('<!--{$datasets|escape:'quotes'}-->'); | |||
var title ='<!--{$title|default:''|escape:'quotes'}-->'; | |||
var yAxisLabel= '<!--{$yAxisLabel|default:''|escape:'quotes'}-->'; | |||
var xAxisLabel= '<!--{$xAxisLabel|default:''|escape:'quotes'}-->'; | |||
var gridColor = '<!--{$gridColor|default:'#80808080'|escape:'quotes'}-->'; | |||
var axisColor = '<!--{$axisColor|escape:'quotes'}-->'; | |||
var fontColor = '<!--{$fontColor|default:'white'|escape:'quotes'}-->'; | |||
var hasTitle = true | |||
if (title == "") { | |||
hasTitle = false; | |||
} | |||
var yAxisBoolean = true | |||
if (yAxisLabel == "") { | |||
yAxisBoolean = false; | |||
} | |||
var xAxisBoolean = true | |||
if (xAxisLabel == "") { | |||
xAxisBoolean = false; | |||
} | |||
if (axisColor == "") { | |||
axisColor = gridColor; | |||
} | |||
new Chart(document.getElementById('<!--{$uniqueId|escape:'html'}-->'), { | |||
type: "line", | |||
data: datasets, | |||
options: { | |||
plugins:{ | |||
title: { | |||
display:hasTitle, | |||
text:title, | |||
font: { | |||
size: 22 | |||
}, | |||
color:fontColor | |||
}, | |||
legend: { | |||
display:hasTitle | |||
}, | |||
tooltip: { | |||
callbacks: { | |||
label: (ctx) => (`${ctx.dataset.label}: ${ctx.raw}`) | |||
} | |||
} | |||
}, | |||
scales: { | |||
y: { | |||
title:{ | |||
text:yAxisLabel, | |||
display:yAxisBoolean, | |||
color:fontColor, | |||
font: { | |||
size: 18 | |||
} | |||
}, | |||
grid: { | |||
color:gridColor | |||
}, | |||
border: { | |||
color:axisColor | |||
}, | |||
ticks: { | |||
color:fontColor, | |||
font: { | |||
size: 18 | |||
} | |||
} | |||
}, | |||
x: { | |||
title:{ | |||
text:xAxisLabel, | |||
display:xAxisBoolean, | |||
color:fontColor | |||
}, | |||
grid: { | |||
color:gridColor | |||
}, | |||
border: { | |||
color:axisColor | |||
}, | |||
ticks: { | |||
color:fontColor | |||
} | |||
} | |||
} | |||
} | |||
}); | |||
</script></includeonly><noinclude> | |||
==Parameters== | |||
<pre style="width:fit-content">uniqueId</pre> | |||
*Determines canvas element name | |||
*Name needs to be unique if multiple widgets are to be displayed on the same page. | |||
<pre style="width:fit-content">title</pre> | |||
*Default: <code>""</code> empty string | |||
*String of text to display as the title of the graph. | |||
*This string also serves to detemine whether or not to show the legend.<br>If no string is provided both the legend and the title are not displayed. | |||
<pre style="width:fit-content">yAxisLabel</pre> | |||
*Default: <code>""</code> empty string | |||
*String of text to display on the y-axis. Text is rendered vertically, bottom to top. | |||
<pre style="width:fit-content">xAxisLabel</pre> | |||
*Default: <code>""</code> empty string | |||
*String of text to display on the x-axis. | |||
<pre style="width:fit-content">gridColor</pre> | |||
*Default: <code>'#80808080'</code> | |||
<pre style="width:fit-content">axisColor</pre> | |||
*Default: <code>var gridColor</code> | |||
<pre style="width:fit-content">fontColor</pre> | |||
*Default: <code>'white'</code> | |||
<pre style="width:fit-content">datasets</pre> | |||
*String of text that is a properly formatted JSON object when parsed by <code>JSON.parse()</code>. The graph will not render if an improper JSON object is passed.<br>It is recommended that you check the string format with some sort of tool like JSON Lint, or whatever else you prefer. | |||
*The first set of objects within the JSON object must have the "datasets" array pair. | |||
**For specifics on what options and formats are available, please see [https://www.chartjs.org/docs/3.9.1/general/accessibility.html the official Chart.js documentation.] | |||
==Example== | |||
<pre>{{#widget:DatasetsChart|uniqueId=ExampleChart|title=This String Becomes the Title|datasets={"labels":[0, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500],"datasets":[{"label":"Luck Grade 5","data":[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],"borderColor":"#AD5AFF","backgroundColor":"#AD5AFFBB"},{"label":"Luck Grade 6","data":[1, 3, 6, 8, 10, 12, 14, 16, 18, 20, 22],"borderColor":"#F7A22D","backgroundColor":"#F7A22DBB"}]}|}}</pre> | |||
{{#widget:DatasetsChart|uniqueId=ExampleChart|title=This String Becomes the Title|datasets={"labels":[0, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500],"datasets":[{"label":"Luck Grade 5","data":[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],"borderColor":"#AD5AFF","backgroundColor":"#AD5AFFBB"},{"label":"Luck Grade 6","data":[1, 3, 6, 8, 10, 12, 14, 16, 18, 20, 22],"borderColor":"#F7A22D","backgroundColor":"#F7A22DBB"}]}|}} | |||
{{#widget: | |||
</noinclude> | </noinclude> |
Latest revision as of 07:19, 23 June 2024
Parameters
uniqueId
- Determines canvas element name
- Name needs to be unique if multiple widgets are to be displayed on the same page.
title
- Default:
""
empty string - String of text to display as the title of the graph.
- This string also serves to detemine whether or not to show the legend.
If no string is provided both the legend and the title are not displayed.
yAxisLabel
- Default:
""
empty string - String of text to display on the y-axis. Text is rendered vertically, bottom to top.
xAxisLabel
- Default:
""
empty string - String of text to display on the x-axis.
gridColor
- Default:
'#80808080'
axisColor
- Default:
var gridColor
fontColor
- Default:
'white'
datasets
- String of text that is a properly formatted JSON object when parsed by
JSON.parse()
. The graph will not render if an improper JSON object is passed.
It is recommended that you check the string format with some sort of tool like JSON Lint, or whatever else you prefer. - The first set of objects within the JSON object must have the "datasets" array pair.
- For specifics on what options and formats are available, please see the official Chart.js documentation.
Example
{{#widget:DatasetsChart|uniqueId=ExampleChart|title=This String Becomes the Title|datasets={"labels":[0, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500],"datasets":[{"label":"Luck Grade 5","data":[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],"borderColor":"#AD5AFF","backgroundColor":"#AD5AFFBB"},{"label":"Luck Grade 6","data":[1, 3, 6, 8, 10, 12, 14, 16, 18, 20, 22],"borderColor":"#F7A22D","backgroundColor":"#F7A22DBB"}]}|}}