The labels and values of up to ten slices may be specified. All the parameters for three slices are included below; to include more slices, copy the code for one of the others, changing the digit at the end of each parameter name.
|thumb=left
.
|caption=
specifies a string of text that appears on a line just before the legend.
|other=
, if specified, will cause an "Other" item to appear in the legend.
|labelN=
is a string of text that appears in the legend entry for a slice. Omitting it will cause a legend entry to not be shown for that slice.
|valueN=
is the percentage that the slice represents. Do not include the percent sign. Also note that it is shown in the legend as written (just after the label), without any rounding or other reformatting.
|colorN=
is a CSS color code or name. If omitted, it will default to the following hues:
- 1.
red
- 2.
green
- 3.
blue
|
- 4.
yellow
- 5.
fuchsia
- 6.
aqua
|
- 7.
brown
- 8.
orange
|
- 9.
purple
- 10.
sienna
|
- Minor issues with printing exist. We also need to implement a good fallback for use with the Wikipedia book tool.
- The values need to be percentages.
- Google Chrome and Safari do not appear to anti-alias borders, so the lines are a bit jagged. (For Chrome, this issue seems to be resolved; tested with version 26.)
- No labels can be put on the slices themselves.
- Inherently, it is not possible to save a copy of the chart using the browser's "Save Image" function.
One (42%)
Two (32%)
Three (12%)
Four (3%)
Five (2%)
Six (1%)
Other (8%)
This is an experimental template that draws pie charts using a single image, a lot of (inline) CSS code generated by parser functions, and absolutely no JavaScript. It uses a technique for drawing diagonal lines in CSS exploiting the fact that borders set on elements are miter joined. Thus, it is possible to set one border to an opaque color, with the others fully transparent, to form a diagonal line. The angle of the line can be controlled by adjusting the widths of two adjacent borders (one of them opaque) relative to each other.
Note that in the legacy browser Internet Explorer 6, applying transparent borders the standard way does not work. A workaround is used in the form of the class transborder
, which has been added to MediaWiki:Common.css to make this template usable.
Pie slices are drawn in clockwise order in a counterclockwise direction. These pie slices are positioned:
- Below a 200×200px image having a transparent circle on a light-colored background (same as the background color used for CSS class
thumbinner
)
- Inside a container element with
overflow: hidden;
set
This allows only the part of each slice that is inside the circle to be visible on the page.
Most of the code in
{{Pie chart/slice}} is divided into five sections, the first four corresponding to quadrants of the circle and the last to cleanly cover the case in which one slice occupies 100% of the chart.
The following example of Template:Pie chart generates the pie chart show at right.
{{Pie chart
| caption=[[Religion in the Czech Republic]] as of 2001.
| other = yes
| label1 = [[Atheist]]s and [[Agnosticism|agnostics]]
| value1 = 59 | color1 = silver
| label2 = [[Catholic Church|Catholics]]
| value2 = 26.8 | color2 = #008
| label3 = [[Protestantism|Protestants]]
| value3 = 2.5 | color3 = #08f
}}
{{Brick chart}}
{{Composition bar}}
Formatted/colorized template source for Template:Pie chart
|
{{Documentation subpage}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->
__NOTOC__
=== Usage ===
The labels and values of up to ten slices may be specified. All the parameters for three slices are included below; to include more slices, copy the code for one of the others, changing the digit at the end of each parameter name.
<pre><nowiki>
{{Pie chart
| thumb =
| caption =
| other =
| label1 =remember
| value1 =16.6
| color1 =2
| label2 =understand
| value2 =16.6
| color2 =3
| label3 =apply
| value3 =16.6
| color3 =5
| label4 =analyze
| value4 =16.6
| color4 =6
| label5 =evaluate
| value5 =16.6
| color5 =9
| label6 =design
| value6 =16.6
| color6 =10
}}
</nowiki>
- The parameter </nowiki>{{para|thumb}} specifies which side of the page the chart is floated to and defaults to <code>right</code>, as with image files. To make the chart appear on the ''left'' side of the page, specify {{para|thumb
|left}}.
* The parameter {{para|caption}} specifies a string of text that appears on a line just before the legend.
* The parameter {{para|other}}, if specified, will cause an "Other" item to appear in the legend.
* Each {{para|label''N''}} is a string of text that appears in the legend entry for a slice. Omitting it will cause a legend entry to not be shown for that slice.
* Each {{para|value''N''}} is the percentage that the slice represents. Do ''not'' include the percent sign. Also note that it is shown in the legend as written (just after the label), without any rounding or other reformatting.
* Each {{para|color''N''}} is a [[Web colors|CSS color code or name]]. If omitted, it will default to the following hues:
:: |
| valign=top style="padding-right:1em" |
:1. {{legend|red |red}}
:2. {{legend|green |green}}
:3. {{legend|blue |blue}}
| valign=top style="padding-right:1em" |
:4. {{legend|yellow |yellow}}
:5. {{j|{{legend|fuchsia |fuchsia}} }}
:6. {{legend|aqua |aqua}}
| valign=top style="padding-right:1em" |
:7. {{legend|brown |brown}}
:8. {{j|{{legend|orange |orange}} }}
| valign=top |
:9. {{legend|purple |purple}}
:10. {{legend|sienna |sienna}}
|}
=== Limitations ===
* Minor issues with printing exist. We also need to implement a good fallback for use with the [[WP:Books|Wikipedia book tool]].
* The values need to be percentages.
* Google Chrome and Safari do not appear to [[anti-alias]] borders, so the lines are a bit jagged. (For Chrome, this issue seems to be resolved; tested with version 26.)
* No labels can be put on the slices themselves.
* Inherently, it is not possible to save a copy of the chart using the browser's "Save Image" function.
=== How it works ===
{{Pie chart
|other = yes
|value1 = 42
|label1 = One
|value2 = 32
|label2 = Two
|value3 = 12
|label3 = Three
|value4 = 3
|label4 = Four
|value5 = 2
|label5 = Five
|value6 = 1
|label6 = Six
}}
This is an ''experimental'' template that draws pie charts using a single image, a lot of (inline) CSS code generated by parser functions, and ''absolutely no JavaScript''. It uses a technique for [http://erezsh.wordpress.com/2008/07/31/drawing-diagonal-lines-with-css/ drawing diagonal lines in CSS] exploiting the fact that borders set on elements are [[miter join]]ed. Thus, it is possible to set one border to an opaque color, with the others fully transparent, to form a diagonal line. The angle of the line can be controlled by adjusting the widths of two adjacent borders (one of them opaque) relative to each other.
Note that in the legacy browser [[Internet Explorer 6]], applying transparent borders the standard way does not work. A [http://acidmartin.wordpress.com/2008/08/24/emulating-border-color-transparent-in-internet-explorer-6/ workaround] is used in the form of the [[Wikipedia:Catalogue of CSS classes|class]] <code>transborder</code>, which has been added to [[MediaWiki:Common.css]] to make this template usable.
Pie slices are drawn in clockwise order in a counterclockwise direction. These pie slices are positioned:
* Below a [[:File:Circle frame.svg|200×200px image]] having a transparent circle on a light-colored background (same as the background color used for CSS class <code>thumbinner</code>)
* Inside a container element with <code>overflow: hidden;</code> set
This allows only the part of each slice that is inside the circle to be visible on the page.
Most of the code in {{tlx|Pie chart/slice}} is divided into five sections, the first four corresponding to quadrants of the circle and the last to cleanly cover the case in which one slice occupies 100% of the chart.
{{-}}
=== Example ===
{{Pie chart
| caption=[[Religion in the Czech Republic]] as of 2001.
| other = yes
| label1 = [[Atheist]]s and [[Agnosticism|agnostics]]
| value1 = 59
| color1 = silver
| label2 = [[Catholic Church|Catholics]]
| value2 = 26.8
| color2 = #008
| label3 = [[Protestantism|Protestants]]
| value3 = 2.5
| color3 = #08f
}}
The following example of [[Template:Pie chart]] generates the pie chart show at right.
<pre style="overflow:auto">
{{Pie chart
| caption=[[Religion in the Czech Republic]] as of 2001.
| other = yes
| label1 = [[Atheist]]s and [[Agnosticism|agnostics]]
| value1 = 59 | color1 = silver
| label2 = [[Catholic Church|Catholics]]
| value2 = 26.8 | color2 = #008
| label3 = [[Protestantism|Protestants]]
| value3 = 2.5 | color3 = #08f
}}
</pre>
=== See also ===
* {{tl|Brick chart}}
* {{tl|Composition bar}}
* [[Module:Chart]]
* [[Module:Plotter]]
{{collapse top|Formatted/colorized template source for Template:Pie chart}}
{{#invoke:FormatTemplate |format}}
{{collapse bottom}}
{{collapse top|Formatted/colorized template source for Template:Pie chart/slice}}
{{#invoke:FormatTemplate |format |page=Template:Pie chart/slice}}
{{collapse bottom}}
{{collapse top|Formatted/colorized template source for Template:Legend}}
{{#invoke:FormatTemplate |format |page=Template:Legend}}
{{collapse bottom}}
{{collapse top|Formatted/colorized template source for Template:Trim}}
{{#invoke:FormatTemplate |format |page=Template:Trim}}
{{collapse bottom}}
<includeonly>
<!-- CATEGORIES HERE, THANKS -->
[[Category:Chart formatting templates]]
</includeonly>:
|
Formatted/colorized template source for Template:Pie chart/slice
|
<includeonly><div style="border:solid transparent;position:absolute;width:100px;line-height:0;{{#switch:{{#expr:floor({{{2}}}/25)}}
<!-- 0-25% --> |0=
right:100px;
top:{{#expr:100-100*sin(pi/50*{{{2}}})}}px;
border-width:0 0 {{#expr:100*sin(pi/50*{{{2}}})}}px {{#expr:100*cos(pi/50*{{{2}}})}}px;
border-bottom-color:{{{1}}}
"></div>
<!-- 25-50% --> |1=
right:100px;
top:0;
border-width:0 {{#expr:100*tan(pi/50*({{{2}}}-25))}}px 100px 0;
border-right-color:{{{1}}}
"></div>
<div style="position:absolute;line-height:0;border-style:solid;right:0;top:0;border-width:0 100px 100px 0;border-color:{{{1}}}"></div>
<!-- 50-75% --> |2=
right:100px;
top:100px;
border-width:{{#expr:100*sin(pi/50*({{{2}}}-50))}}px {{#expr:100*cos(pi/50*({{{2}}}-50))}}px 0 0;
border-top-color:{{{1}}}
"></div>
<div style="position:absolute;line-height:0;border-style:solid;left:0;top:0;border-width:0 200px 100px 0;border-color:{{{1}}}"></div>
<!-- 75%-100% --> |3=
left:100px;
top:100px;
border-width:100px 0 0 {{#expr:100*tan(pi/50*({{{2}}}-25))}}px;
border-left-color:{{{1}}}
"></div>
<div style="position:absolute;line-height:0;border-style:solid;left:0;top:0;border-width:0 200px 100px 0;border-color:{{{1}}}"></div>
<div style="position:absolute;line-height:0;border-style:solid;left:0;top:0;border-width:0 100px 200px 0;border-color:{{{1}}}"></div>
<!-- 100% --> |4=
left:0;
top:0;
border-width:0 200px 200px 0;
border-color:{{{1}}}
"></div>
}}</includeonly><noinclude>
{{documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>:
|
Formatted/colorized template source for Template:Legend
|
<includeonly><div class="legend"><span class="legend-color" style="display:inline-block; width:1.5em; height:1.5em; margin:1px 0; border:{{{border|1px solid {{{outline|black}}}}}}; background-color:{{trim|{{{1|transparent}}}}}; color:{{{textcolor|black}}}; font-size:{{{size|100%}}}; text-align:center;">{{#if:{{{text|}}} |<span class="legend-text">{{{text}}}</span> | }}</span> {{{2|}}}</div></includeonly><noinclude>
{{Documentation}}
</noinclude>:
|
Formatted/colorized template source for Template:Trim
|
<includeonly>{{ {{{|safesubst:}}}#if:1|{{{1|}}}}}</includeonly><noinclude>
{{دستاویز}}
</noinclude>:
|