considered. The details are muddled; for example, it appears that if
one of the variables lacks a specified format entirely, then none of
their formats is used.
+
+
+Nice column and row facets found by searching for 2-facetLevel xmls:
+/home/blp/pspp/spv/spv/04488e072882e8f8b0c3c687e272d4af/00000000293_-4000816061397075370_chart.xml
+
+Different contents for different cells:
+/home/blp/pspp/spv/spv/271f44f7ba0037acfe63ef8e3e7c8918/0000000003312_-6910783111487815678_chart.xml
+
+Two dotted (not crossed) facet levels (this is the only example):
+/home/blp/pspp/spv/spv/cfe40eafe2c4122adbb5412f3d463bcd/00000000302_7579179872145113090_chart.xml
+
+Rotated matrix chart with multiple facetLevels:
+/home/blp/pspp/spv/spv/301cd2376ccc9f5db2fe0df3aa91eac0/00000000013__chart.xml
+
+Rotated weird text chart with multiple facetLevels:
+/home/blp/pspp/spv/spv/66c4eb85507e7b950ff06a0aad36a466/00000002282__chart.xml
+
+Normal-ish barchart with multiple facetLevels:
+/home/blp/pspp/spv/spv/9538e0d28ff95b21336ea19a551affca/00000000072_2564001948504162306_chart.xml
Each `facetLevel` contains an `axis`, which in turn may contain a
[`label`](#the-label-element) for the `facetLevel` and does contain a
-`majorTicks` element.
+`majorTicks` element with the following attributes:
* `labelAngle`
Normally 0. The value -90 causes inner column or outer row labels
where
R: Read + Seek,
{
- let mut buf = vec![0; 512];
+ let mut buf = vec![0; 1024];
let mut n = 0;
while n < buf.capacity() {
let count = reader.read(&mut buf[n..])?;
axis_domains[axis] = AxisDomain {
domain,
formatter: formatter.unwrap_or_else(|| Formatter::default_for_locale(locale)),
- label: axis2.and_then(|axis| axis.label.as_ref()),
+ label: dbg!(axis2.and_then(|axis| axis.label.as_ref())),
major_ticks: axis2.and_then(|axis| axis.major_ticks.as_ref()),
};
}
}
}
}
- for (y_index, _y_facet) in y_facets.clone().enumerate() {
+ for (y_index, y_facet) in y_facets.clone().enumerate() {
let rect = rect.subrect(0, nx_facets, y_index, ny_facets);
// Y axis.
let x = rect.0[Axis2::X].0;
.set("text-anchor", "end"),
);
}
- if let Some(label) = &axis_domains[Axis3::Y].label {
- let x = x - 10.0 - y_axis_text_width - font_height;
- let y = rect.0[Axis2::Y].midpoint();
- graph_svg.append(
- svg::node::element::Text::new(label.text())
- .set("x", x)
- .set("y", y)
- .set("dominant-baseline", "hanging")
- .set("text-anchor", "middle")
- .set("transform", format!("rotate(-90, {x}, {y})")),
- );
- }
+
+ let label = zip(&y_facet, &faceting[Axis2::Y])
+ .map(|(value, series)| {
+ if let Some(label) = &value.label {
+ label.clone()
+ } else {
+ series.formatter.display(&value.value).to_string()
+ }
+ })
+ .join(", ");
+ let x = x - 10.0 - y_axis_text_width - font_height;
+ let y = rect.0[Axis2::Y].midpoint();
+ graph_svg.append(
+ svg::node::element::Text::new(label)
+ .set("x", x)
+ .set("y", y)
+ .set("dominant-baseline", "hanging")
+ .set("text-anchor", "middle")
+ .set("transform", format!("rotate(-90, {x}, {y})")),
+ );
+ }
+
+ if let Some(label) = &axis_domains[Axis3::Y].label {
+ let x = rect.0[Axis2::X].0 - 10.0 - y_axis_text_width - font_height;
+ let y = rect.0[Axis2::Y].midpoint();
+ graph_svg.append(
+ svg::node::element::Text::new(dbg!(label.text()))
+ .set("x", x)
+ .set("y", y)
+ .set("dominant-baseline", "hanging")
+ .set("text-anchor", "middle")
+ .set("transform", format!("rotate(-90, {x}, {y})")),
+ );
}
+
for (x_index, x_facet) in x_facets.enumerate() {
for (y_index, y_facet) in y_facets.clone().enumerate() {
let rect = rect.subrect(x_index, nx_facets, y_index, ny_facets);
fn graph4() {
test_graph_file("graph4");
}
+
+ #[test]
+ fn graph5() {
+ test_graph_file("graph5");
+ }
}
}
}
}
- assert_eq!(n_maps, count);
}
+ assert_eq!(n_maps, count);
(labels.len() as u32).write_le(&mut bin).unwrap();
for (label, frequency) in &labels {
--- /dev/null
+<svg height="500" style="font-family: "Sans Serif"" viewBox="0 0 625 500" width="625" xmlns="http://www.w3.org/2000/svg">
+<g id="frame_data_1">
+<line stroke="black" x1="70.25" x2="342" y1="439" y2="439"/>
+<line stroke="black" x1="138.1875" x2="138.1875" y1="439" y2="449"/>
+<text dominant-baseline="hanging" text-anchor="middle" x="138.1875" y="449">
+
+</text>
+<line stroke="black" x1="274.0625" x2="274.0625" y1="439" y2="449"/>
+<text dominant-baseline="hanging" text-anchor="middle" x="274.0625" y="449">
+
+</text>
+<text dominant-baseline="hanging" text-anchor="middle" x="206.125" y="472">
+Value of Variable 4
+</text>
+<line stroke="black" x1="347" x2="618.75" y1="439" y2="439"/>
+<line stroke="black" x1="414.9375" x2="414.9375" y1="439" y2="449"/>
+<text dominant-baseline="hanging" text-anchor="middle" x="414.9375" y="449">
+
+</text>
+<line stroke="black" x1="550.8125" x2="550.8125" y1="439" y2="449"/>
+<text dominant-baseline="hanging" text-anchor="middle" x="550.8125" y="449">
+
+</text>
+<text dominant-baseline="hanging" text-anchor="middle" x="482.875" y="472">
+Value of Variable 4
+</text>
+<line stroke="black" x1="70.25" x2="70.25" y1="5" y2="109.75">
+<!-- Y axis 0 -->
+</line>
+<line stroke="black" x1="70.25" x2="60.25" y1="109.75" y2="109.75"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="109.75">
+.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="93.12301587301587" y2="93.12301587301587"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="93.12301587301587">
+1.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="76.49603174603175" y2="76.49603174603175"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="76.49603174603175">
+2.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="59.86904761904761" y2="59.86904761904761"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="59.86904761904761">
+3.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="43.242063492063494" y2="43.242063492063494"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="43.242063492063494">
+4.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="26.615079365079357" y2="26.615079365079357"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="26.615079365079357">
+5.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="9.988095238095232" y2="9.988095238095232"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="9.988095238095232">
+6.00
+</text>
+<text dominant-baseline="hanging" text-anchor="middle" transform="rotate(-90, 6.25, 57.375)" x="6.25" y="57.375">
+4
+</text>
+<line stroke="black" x1="70.25" x2="70.25" y1="114.75" y2="219.5">
+<!-- Y axis 1 -->
+</line>
+<line stroke="black" x1="70.25" x2="60.25" y1="219.5" y2="219.5"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="219.5">
+.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="202.87301587301587" y2="202.87301587301587"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="202.87301587301587">
+1.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="186.24603174603175" y2="186.24603174603175"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="186.24603174603175">
+2.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="169.61904761904762" y2="169.61904761904762"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="169.61904761904762">
+3.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="152.9920634920635" y2="152.9920634920635"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="152.9920634920635">
+4.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="136.36507936507937" y2="136.36507936507937"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="136.36507936507937">
+5.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="119.73809523809523" y2="119.73809523809523"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="119.73809523809523">
+6.00
+</text>
+<text dominant-baseline="hanging" text-anchor="middle" transform="rotate(-90, 6.25, 167.125)" x="6.25" y="167.125">
+5
+</text>
+<line stroke="black" x1="70.25" x2="70.25" y1="224.5" y2="329.25">
+<!-- Y axis 2 -->
+</line>
+<line stroke="black" x1="70.25" x2="60.25" y1="329.25" y2="329.25"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="329.25">
+.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="312.6230158730159" y2="312.6230158730159"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="312.6230158730159">
+1.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="295.99603174603175" y2="295.99603174603175"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="295.99603174603175">
+2.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="279.3690476190476" y2="279.3690476190476"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="279.3690476190476">
+3.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="262.7420634920635" y2="262.7420634920635"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="262.7420634920635">
+4.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="246.11507936507937" y2="246.11507936507937"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="246.11507936507937">
+5.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="229.48809523809524" y2="229.48809523809524"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="229.48809523809524">
+6.00
+</text>
+<text dominant-baseline="hanging" text-anchor="middle" transform="rotate(-90, 6.25, 276.875)" x="6.25" y="276.875">
+7
+</text>
+<line stroke="black" x1="70.25" x2="70.25" y1="334.25" y2="439">
+<!-- Y axis 3 -->
+</line>
+<line stroke="black" x1="70.25" x2="60.25" y1="439" y2="439"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="439">
+.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="422.3730158730159" y2="422.3730158730159"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="422.3730158730159">
+1.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="405.74603174603175" y2="405.74603174603175"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="405.74603174603175">
+2.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="389.1190476190476" y2="389.1190476190476"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="389.1190476190476">
+3.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="372.4920634920635" y2="372.4920634920635"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="372.4920634920635">
+4.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="355.86507936507934" y2="355.86507936507934"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="355.86507936507934">
+5.00
+</text>
+<line stroke="black" x1="70.25" x2="60.25" y1="339.23809523809524" y2="339.23809523809524"/>
+<text dominant-baseline="middle" text-anchor="end" x="60.25" y="339.23809523809524">
+6.00
+</text>
+<text dominant-baseline="hanging" text-anchor="middle" transform="rotate(-90, 6.25, 386.625)" x="6.25" y="386.625">
+6
+</text>
+<text dominant-baseline="hanging" text-anchor="middle" transform="rotate(-90, 6.25, 222)" x="6.25" y="222">
+Frequency
+</text>
+<rect fill="#f0f0f0" height="104.75" stroke="#000000" width="271.75" x="70.25" y="5"/>
+<g id="element_histogram_1">
+<rect fill="#d3ce97" height="99.76190476190477" stroke="#000000" width="44.838750000000005" x="115.768125" y="9.988095238095232"/>
+<rect fill="#d3ce97" height="49.88095238095239" stroke="#000000" width="44.838750000000005" x="251.643125" y="59.86904761904761"/>
+</g>
+<rect fill="#f0f0f0" height="104.75" stroke="#000000" width="271.75" x="70.25" y="114.75"/>
+<g id="element_histogram_1">
+<rect fill="#d3ce97" height="99.76190476190477" stroke="#000000" width="44.838750000000005" x="115.768125" y="119.73809523809523"/>
+</g>
+<rect fill="#f0f0f0" height="104.75" stroke="#000000" width="271.75" x="70.25" y="224.5"/>
+<g id="element_histogram_1">
+<rect fill="#d3ce97" height="99.76190476190476" stroke="#000000" width="44.838750000000005" x="115.768125" y="229.48809523809524"/>
+</g>
+<rect fill="#f0f0f0" height="104.75" stroke="#000000" width="271.75" x="70.25" y="334.25"/>
+<g id="element_histogram_1">
+<rect fill="#d3ce97" height="49.88095238095241" stroke="#000000" width="44.838750000000005" x="251.643125" y="389.1190476190476"/>
+</g>
+<rect fill="#f0f0f0" height="104.75" stroke="#000000" width="271.75" x="347" y="5"/>
+<g id="element_histogram_1">
+<rect fill="#d3ce97" height="99.76190476190477" stroke="#000000" width="44.838750000000005" x="392.518125" y="9.988095238095232"/>
+</g>
+<rect fill="#f0f0f0" height="104.75" stroke="#000000" width="271.75" x="347" y="114.75"/>
+<g id="element_histogram_1">
+<rect fill="#d3ce97" height="99.76190476190477" stroke="#000000" width="44.838750000000005" x="392.518125" y="119.73809523809523"/>
+</g>
+<rect fill="#f0f0f0" height="104.75" stroke="#000000" width="271.75" x="347" y="224.5"/>
+<g id="element_histogram_1">
+<rect fill="#d3ce97" height="49.88095238095241" stroke="#000000" width="44.83874999999989" x="528.393125" y="279.3690476190476"/>
+</g>
+<rect fill="#f0f0f0" height="104.75" stroke="#000000" width="271.75" x="347" y="334.25"/>
+<g id="element_histogram_1">
+<rect fill="#d3ce97" height="99.76190476190476" stroke="#000000" width="44.838750000000005" x="392.518125" y="339.23809523809524"/>
+</g>
+</g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<visualization xmlns="http://www.ibm.com/software/analytics/spss/xml/visualization" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" creator="en" date="2019-05-08" description="Histogram of Kategorija" id="frame_graph_1" lang="en-US" style="frame_graph_1s" type="21000000" version="1.4" xsi:schemaLocation="http://www.ibm.com/software/analytics/spss/xml/visualization http://www.ibm.com/software/analytics/spss/xml/visualization/vizml-3.0.xsd">
+ <!-- Source: /home/blp/pspp/spv/spv/04488e072882e8f8b0c3c687e272d4af/00000000293_-4000816061397075370_chart.xml -->
+ <!-- Data -->
+ <location method="fixed" part="left" value="0px" />
+ <location method="fixed" part="right" value="625px" />
+ <location method="fixed" part="top" value="0px" />
+ <location method="fixed" part="bottom" value="500px" />
+ <extension styleCycleRepository="styleCycleRepository" />
+ <embeddedSource id="source0">
+ <names>$WEIGHT;V11;V12;V4</names>
+ <types>double;double;double;double</types>
+ <row>5;101;4;101</row>
+ <row>4;101;5;101</row>
+ <row>2;101;7;101</row>
+ <row>1;102;4;101</row>
+ <row>7;102;5;101</row>
+ <row>4;102;6;101</row>
+ <row>5;101;4;102</row>
+ <row>1;101;6;102</row>
+ <row>10;102;7;102</row>
+ </embeddedSource>
+ <sourceVariable categorical="false" creator="external_datasource" id="variable4" key="false" shortLabel="V4" source="source0" sourceName="V4" weight="false">
+ <format hiddenseparator="false" minimumFractionDigits="2" minimumIntegerDigits="0" useGrouping="false" />
+ </sourceVariable>
+ <sourceVariable categorical="false" creator="internal_aggregate" id="variable5" key="false" label="Frequency" shortLabel="Frequency" source="source0" sourceName="$WEIGHT" weight="true" />
+ <sourceVariable categorical="true" creator="external_datasource" id="variable11" key="false" shortLabel="V11" source="source0" sourceName="V11" weight="false">
+ <format>
+ <relabel from="101" id="relabel_1270" to="Category 1" />
+ <relabel from="102" id="relabel_1271" to="Category 2" />
+ </format>
+ </sourceVariable>
+ <sourceVariable categorical="true" creator="external_datasource" id="variable12" key="false" shortLabel="V12" source="source0" sourceName="V12" weight="false" />
+ <!-- Structure -->
+ <graph cellStyle="facetLabel_data_1s" id="frame_data_1" style="frame_data_1s">
+ <location method="fixed" part="left" value="1%" />
+ <location method="fixed" part="top" value="1%" />
+ <location method="fixed" part="bottom" value="99%" />
+ <location method="fixed" part="right" value="99%" />
+ <coordinates id="coordinates_1305">
+ <dimension id="dimension_1306" lowerMargin="5%" upperMargin="5%">
+ <axis combineAxisLabels="true" id="axis_axisx_1" repeat="never" style="axis_axisx_1s">
+ <label id="label_axisx_1" style="style_1312" textFrameStyle="style_1310">
+ <text id="text_1309">Value of Variable 4</text>
+ </label>
+ <majorTicks id="majorTicks_1314" markStyle="majorTicks_axis_axisx_1markStyle" stagger="false" style="style_1317" tickFrameStyle="style_1315" />
+ </axis>
+ </dimension>
+ <dimension id="dimension_1319" upperMargin="5%">
+ <axis combineAxisLabels="true" id="axis_axisy_1" repeat="never" style="axis_axisy_1s">
+ <label id="label_axisy_1" style="style_1325" textFrameStyle="style_1323">
+ <text id="text_1322">Frequency</text>
+ </label>
+ <majorTicks id="majorTicks_1327" markStyle="majorTicks_axis_axisy_1markStyle" stagger="false" style="style_1330" tickFrameStyle="style_1328" />
+ </axis>
+ </dimension>
+ </coordinates>
+ <faceting id="faceting_1332" method="cross">
+ <cross id="cross_1333">
+ <variableReference ref="variable11" />
+ <variableReference ref="variable12" />
+ </cross>
+ </faceting>
+ <facetLayout id="facetLayout_1336" topDown="true">
+ <facetLevel gap="2%" id="facetLabel_panel_1" level="1">
+ <axis id="axis_panel_1" opposite="true" repeat="never" style="axis_panel_1s">
+ <label id="label_panel_1" style="style_1343" textFrameStyle="style_1341">
+ <text id="text_1340">Variable 4</text>
+ </label>
+ <majorTicks id="majorTicks_1345" markStyle="majorTicks_axis_panel_1markStyle" stagger="false" style="style_1348" tickFrameStyle="style_1346" />
+ </axis>
+ </facetLevel>
+ <facetLevel gap="2%" id="facetLabel_panel_2" level="2">
+ <axis id="axis_panel_2" opposite="true" repeat="never" style="axis_panel_2s">
+ <label id="label_panel_2" style="style_1356" textFrameStyle="style_1354">
+ <text id="text_1353">Variable 12</text>
+ </label>
+ <majorTicks id="majorTicks_1358" labelAngle="90" markStyle="majorTicks_axis_panel_2markStyle" stagger="false" style="style_1361" tickFrameStyle="style_1359" />
+ </axis>
+ </facetLevel>
+ </facetLayout>
+ <interval dot="false" id="element_histogram_1" labelCollisionHandling="none" name="element_histogram_1" showCollidingLabels="true" style="element_histogram_1s">
+ <binStatistic id="binStatistic_1364" />
+ <summaryStatistic id="summaryStatistic_1365" method="count" />
+ <x variable="variable4" />
+ </interval>
+ </graph>
+ <!-- Styles -->
+ <style font-family="SansSerif" font-size="8pt;6pt;" id="c-o-n-t-a-i-n-er" pattern="0" stroke-linecap="butt" text-fit="true">
+ <style color="white" color2="transparent" id="frame_graph_1s" />
+ <style color="transparent" color2="transparent" id="frame_data_1s" />
+ <style color="#F0F0F0" color2="black" id="facetLabel_data_1s" />
+ <style color="black" id="axis_axisx_1s" stroke-width="0.5pt" />
+ <style id="axis_axisx_1baselineStyle" />
+ <style color="black" id="majorTicks_axis_axisx_1markStyle" stroke-width="1pt" />
+ <style id="majorTicks_axis_axisx_1tickLabelStyle" />
+ <style color="black" id="axis_axisy_1s" stroke-width="0.5pt" />
+ <style id="axis_axisy_1baselineStyle" />
+ <style color="black" id="majorTicks_axis_axisy_1markStyle" stroke-width="1pt" />
+ <style id="majorTicks_axis_axisy_1tickLabelStyle" />
+ <style color="#D3CE97" color2="black" depth="75%" id="element_histogram_1s" pattern="0" width="100%" />
+ <style id="label_axisx_1s" />
+ <style id="label_axisy_1s" />
+ <style color="transparent" id="axis_panel_1s" />
+ <style id="axis_panel_1baselineStyle" />
+ <style id="label_panel_1s" />
+ <style id="majorTicks_axis_panel_1markStyle" visible="false" />
+ <style id="majorTicks_axis_panel_1tickLabelStyle" />
+ <style color="transparent" id="axis_panel_2s" />
+ <style id="axis_panel_2baselineStyle" />
+ <style id="label_panel_2s" />
+ <style id="majorTicks_axis_panel_2markStyle" visible="false" />
+ <style id="majorTicks_axis_panel_2tickLabelStyle" />
+ <style id="style_1310" visible="false" />
+ <style color="black" color2="transparent" font-size="11pt;7pt" font-weight="bold" id="style_1312" margin="6px" padding="1px" />
+ <style id="style_1315" visible="false" />
+ <style color="black" font-size="8pt;6pt;" id="style_1317" />
+ <style id="style_1323" visible="false" />
+ <style color="black" color2="transparent" font-size="11pt;7pt" font-weight="bold" id="style_1325" margin="6px" padding="1px" />
+ <style id="style_1328" visible="false" />
+ <style color="black" font-size="8pt;6pt;" id="style_1330" />
+ <style color="transparent" color2="transparent" id="style_1341" />
+ <style color="black" color2="transparent" font-size="11pt;7pt" font-weight="bold" id="style_1343" margin="6px" padding="1px" />
+ <style color="transparent" color2="transparent" id="style_1346" />
+ <style color="black" color2="transparent" font-size="11pt;7pt;" font-weight="bold" id="style_1348" margin="2px" padding="1px" />
+ <style color="transparent" color2="transparent" id="style_1354" />
+ <style color="black" color2="transparent" font-size="11pt;7pt" font-weight="bold" id="style_1356" margin="6px" padding="1px" />
+ <style color="transparent" color2="transparent" id="style_1359" />
+ <style color="black" color2="transparent" font-size="11pt;7pt;" font-weight="bold" id="style_1361" margin="2px" padding="1px" />
+ </style>
+ <!-- Style Cycles -->
+ <styleCycle id="styleCycleDefault">
+ <cycle id="cycle_1298">
+ <style id="style_styleCycleDefault" labelInside="preferred" />
+ </cycle>
+ </styleCycle>
+ <styleCycle id="styleCycleRepository">
+ <cycle>
+ <style color="#3E58AC" />
+ <style color="#2EB848" />
+ <style color="#D3CE97" />
+ <style color="#7C287D" />
+ <style color="#FBF873" />
+ <style color="#EF3338" />
+ <style color="#48C2C5" />
+ <style color="#CCCCCC" />
+ <style color="#7AAAD5" />
+ <style color="#0A562C" />
+ <style color="#F8981D" />
+ <style color="#DDBAF1" />
+ <style color="#1A5F76" />
+ <style color="#CCFFCC" />
+ <style color="#BB3F7F" />
+ <style color="#999999" />
+ <style color="#000000" />
+ <style color="#B6E7E8" />
+ <style color="#FFFFFF" />
+ <style color="#797AA7" />
+ <style color="#70DC84" />
+ <style color="#333333" />
+ <style color="#ACD0EE" />
+ <style color="#A21619" />
+ <style color="#5D61FF" />
+ <style color="#E4E4E4" />
+ <style color="#248BAC" />
+ <style color="#B89BC9" />
+ <style color="#666666" />
+ <style color="#0D8D46" />
+ </cycle>
+ <cycle>
+ <style pattern="0" />
+ <style pattern="26" />
+ <style pattern="1" />
+ <style pattern="12" />
+ <style pattern="3" />
+ <style pattern="29" />
+ <style pattern="6" />
+ <style pattern="14" />
+ <style pattern="7" />
+ <style pattern="18" />
+ <style pattern="17" />
+ <style pattern="22" />
+ <style pattern="9" />
+ <style pattern="20" />
+ <style pattern="10" />
+ <style pattern="21" />
+ <style pattern="27" />
+ <style pattern="19" />
+ <style pattern="23" />
+ <style pattern="13" />
+ <style pattern="4" />
+ <style pattern="25" />
+ <style pattern="28" />
+ <style pattern="5" />
+ <style pattern="15" />
+ <style pattern="2" />
+ <style pattern="24" />
+ <style pattern="11" />
+ <style pattern="16" />
+ <style pattern="8" />
+ </cycle>
+ <cycle>
+ <style size="5pt" symbol="circle" />
+ <style size="5pt" symbol="square" />
+ <style size="5pt" symbol="cross" />
+ <style glyph-sides="3" size="5pt" symbol="polygon" />
+ <style size="5pt" symbol="plus" />
+ <style glyph-angle="90" glyph-aspect="0.5" size="5pt" symbol="circle" />
+ <style glyph-angle="45" size="5pt" symbol="square" />
+ <style glyph-sides="5" size="5pt" symbol="flower" />
+ <style size="5pt" symbol="bowtie" />
+ <style glyph-angle="90" glyph-aspect="0.5" size="5pt" symbol="square" />
+ <style glyph-angle="180" glyph-sides="3" size="5pt" symbol="polygon" />
+ <style glyph-aspect="0.5" size="5pt" symbol="circle" />
+ <style glyph-sides="5" size="5pt" symbol="polygon" />
+ <style glyph-sides="8" size="5pt" symbol="star" />
+ <style glyph-aspect="0.5" size="5pt" symbol="square" />
+ <style glyph-sides="3" size="5pt" symbol="flower" />
+ <style glyph-angle="90" size="5pt" symbol="bowtie" />
+ <style glyph-angle="90" size="5pt" symbol="line" />
+ <style glyph-angle="90" glyph-aspect="0.5" glyph-sides="4" size="5pt" symbol="polygon" />
+ <style size="5pt" symbol="line" />
+ <style glyph-angle="270" glyph-sides="3" size="5pt" symbol="polygon" />
+ <style size="5pt" symbol="arrow" />
+ <style glyph-angle="90" glyph-sides="3" size="5pt" symbol="polygon" />
+ </cycle>
+ <cycle>
+ <style />
+ <style stroke-dasharray="12pt,2pt,2pt,10pt,2pt,2pt" />
+ <style stroke-dasharray="8pt,8pt" />
+ <style stroke-dasharray="10pt,2pt,2pt,2pt" />
+ <style stroke-dasharray="3pt,6pt" />
+ <style stroke-dasharray="12pt,2pt,2pt,2pt,2pt,2pt,2pt,2pt" />
+ <style stroke-dasharray="6pt,3pt,6pt" />
+ <style stroke-dasharray="8pt,1pt,8pt,7pt,2pt,7pt" />
+ <style stroke-dasharray="6pt,2pt,3pt,5pt,2pt,2pt" />
+ <style stroke-dasharray="15pt,2pt,6pt,2pt" />
+ <style stroke-dasharray="5pt,5pt" />
+ <style stroke-dasharray="8pt,2pt,4pt,2pt" />
+ <style stroke-dasharray="3pt,2pt" />
+ <style stroke-dasharray="12pt,5pt,3pt,5pt" />
+ <style stroke-dasharray="6pt,3pt,3pt,3pt" />
+ <style stroke-dasharray="12pt,3pt" />
+ </cycle>
+ </styleCycle>
+</visualization>