This template is used on approximately 6,800 pages and changes may be widely noticed. Test changes in the template's /sandbox or /testcases subpages, or in your own user subpage. Consider discussing changes on the talk page before implementing them.
Preview message: Transclusion count updated automatically (see documentation). |
This is a template that draws pie charts using a single image, a lot of (inline) CSS code generated by parser functions, and absolutely no JavaScript. Some details of how it works are given below.
The labels, values, and colors of up to 30 slices may be specified. All the parameters for six 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. When making a pie chart, ensure that the segments are ordered by size (largest to smallest) and in a clockwise direction.
{{Pie chart
| thumb =
| radius =
| caption=
| footer =
| label1 =
| value1 =
| color1 =
| label2 =
| value2 =
| color2 =
| label3 =
| value3 =
| color3 =
| label4 =
| value4 =
| color4 =
| label5 =
| value5 =
| color5 =
| label6 =
| value6 =
| color6 =
| other =
| other-color =
| other-label =
}}
|thumb=
specifies which side of the page the chart is floated to and defaults to right
, as with image files. To make the chart appear on the left side of the page, specify |thumb=left
.|radius=
specifies the radius of the pie chart in pixels. Do not include a "px" suffix. If omitted, it will default to 100.|caption=
specifies a string of text that appears on a line just before the legend.|footer=
specifies a string of text that appears below the legend.|other=
, if set equal to any visible string (even "0" or "no"), an "Other" item will appear in the legend, corresponding to the final slice that makes the values add up to 100. (If the total is already over 100, then the "Other" percentage will be negative.)|other-color=
can be used to override the default white color of the "Other" slice.|other-label=
can be used to override the default text from "Other" to any other string.|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 (e.g., for eighty percent, use the value "80", not "80%" or ".80"). Collectively, the values must add to 100 or less (in the latter case, a final slice completes the pie, whether |other=
is specified or not). Also note that each value is shown in the legend exactly as written, without any rounding or other reformatting.|colorN=
is a CSS color code or name. If omitted, the default color palette seen in the pie chart to the right is used. If you need to graph more than 14 values (not counting the "Other" slice), then you should specify |color15=
onwards in the template call.|other=
is set, the final slice is always labeled as "Other" in the legend. This is not configurable. If you don't like that, just add to the template call another slice with the appropriate value (to sum to 100) and the desired label, and don't use |other=
.|other=
is set, the calculated percentage for that slice can sometimes turn out to be very strange (e.g., "1.4210854715202E-14%" instead of "0%")The following code generates the pie chart shown at right. Note that the default chart size and colors are used, and the value of "1" for the "other" parameter is only used for its "truth value" as a visible string—i.e., to say, yes, we want an "Other" entry in the legend (the same chart would result if "0" were used).
{{Pie chart
|value1 = 42
|label1 = One
|value2 = 32
|label2 = Two
|value3 = 12
|label3 = Three
|value4 = 3
|label4 = Four
|value5 = 2
|label5 = Five
|value6 = 1
|label6 = Six
|other = 1
}}
Here's a more real-world example.
{{Pie chart
| caption= [[Religion in the Czech Republic]] in 2001.
| label1 = [[Atheist]]s and [[agnostic]]s
| value1 = 59
| color1 = darkgreen
| label2 = [[Catholic]]s
| value2 = 26.8
| color2 = brown
| label3 = [[Protestant]]s
| value3 = 2.5
| color3 = #08f
| other = yes
| other-color = silver
}}
This template 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.
Pie slices are drawn in clockwise order in a counterclockwise direction. These pie slices are positioned:
border-radius: radiuspx
for a circular shapeoverflow: 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.