Draggable Charting interactions are triggered by <customInteraction responseIdentifier="RESPONSE" class="tei-graphing">
.
For customInteraction's with class="tei-graphing", the item compiler scans the QTI xml for only one element: <customOption>
.
Contained inside <customOption>
should be a javascript object that describes the initialization options for the Bar Chart.
There are many options for initializing the chart object. Only a few of these are described here. The definitive reference is at highcharts.js.
To get started, you first initialize the chart object to the chart type, e.g., type: 'column'
for a vertical, draggable, bar chart. You must also specify the
id of the html element where you want to place the chart. In the following case, our item QTI markup contains a <div id="RESPONSE" />
.
The title of each axis can now be formatted. The font-weight
and font-style
for both the x-axis and y-axis can be specified
based on the available options.
For font-weight
there are 14 choices: normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit
.
For font-style
there are 4 choices: normal | italic | oblique | inherit
.
Below are two axis examples with title formatting:
xAxis: { title: { text: 'X Axis Title', style: {'font-weight': 'normal', 'font-style': 'italic'} }
yAxis: { title: { text: 'Y Axis Title', style: {'font-weight': 'bold', 'font-style': 'italic'} }
chart: { renderTo: 'RESPONSE', type: 'column', animation: false }
The labels for points can now be hidden on both the x-axis, y-axis or both.
Hiding the point labels is accomplished by adding labels: {enabled: false}
to the appropriate axis.
Below is an example of an axis with labels hidden:
xAxis: { labels: { enabled: false } }
Get Responses: | [ Click Get Responses ] |
<?xml version="1.0" encoding="utf-8"?> <assessmentItem xmlns="http://www.imsglobal.org/xsd/imsqti_v2p1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsglobal.org/xsd/imsqti_v2p1 http://www.imsglobal.org/xsd/imsqti_v2p1.xsd" identifier="Chart-bar-neg" title="Custom Interaction - Bar Chart Neg" adaptive="false" timeDependent="false"> <responseDeclaration baseType="string" cardinality="ordered" identifier="RESPONSE"> <correctResponse> <value>0 -80</value> <value>1 5</value> <value>2 20</value> </correctResponse> </responseDeclaration> <outcomeDeclaration identifier="SCORE" cardinality="single" baseType="integer" /> <itemBody> <div class="row"> <div class="span6"> <p>Shawn recorded three temperatures of water in degrees Fahrenheit (°F). The dry ice was −112°F, the regular ice was 41°F, and the room temperature water was 68°F.</p> <p>Convert the temperatures into degrees Celcius and move the bars on the graph to show the temperature for each state.</p> </div> <div class="span6"> <div class="well"> <div id="RESPONSE"></div> <customInteraction class="tei-graphing" responseIdentifier="RESPONSE"> <customOption><![CDATA[ { chart: { renderTo: 'RESPONSE', type: 'column', animation: false }, title: { text: 'Water Temps in Different States' }, xAxis: { title: { text: 'State' }, categories: [ 'Dry Ice', 'Regular Ice', 'Room Temperature' ] }, yAxis: { min: -80, max: 80, minorTickInterval: 'auto', title: { text: 'Temperature ( °C )' } }, legend: { enabled: false }, tooltip: { formatter: function() { return this.x + ': ' + Highcharts.numberFormat(this.y, 0) + ' °C'; } }, plotOptions: { series: { cursor: 'ns-resize', stickyTracking: false }, column: { pointPadding: 0.2, borderWidth: 0 } }, series: [{ name: 'Temperature', draggable: true, dragMin: -80, dragMax: 80, data: [ {color:'#AA46E8',y:-20}, {color:'#4572EE',y:10}, {color:'#4572EE',y:10} ], dataQtiIsResponse: true, snapping: true, snappingInterval: 5 }] } ]]></customOption> </customInteraction> </div> </div> </div> </itemBody> <responseProcessing template="http://www.imsglobal.org/question/qti_v2p1/rptemplates/match_correct" /> </assessmentItem>
Shawn recorded three temperatures of water in degrees Fahrenheit (°F). The dry ice was -112°F, the regular ice was 41°F, and the room temperature water was 68°F.
Convert the temperatures into degrees Celcius and move the bars on the graph to show the temperature for each state.