Template:Graph:PageViews
<graph> {
// // ATTENTION: This code is maintained at https://www.mediawiki.org/wiki/Template:Graph:PageViews // Please do not modify it anywhere else, as it may get copied and override your changes. // Suggestions can be made at https://www.mediawiki.org/wiki/Template_talk:Graph:PageViews // The graph uses PageViews API https://wikitech.wikimedia.org/wiki/Analytics/PageviewAPI //
"version": 2, "width": 800, "height": 200,
// The data for this graph comes from the PageView API. The request is made for N days back up to now. "data": [ { "name": "pageviews", "url": "wikirest://wikimedia.org/api/rest_v1/metrics/pageviews/per-article/moasspedia.org/all-access/user/Template%3AGraph%3APageViews/daily/2024021100/2024031200", "format": { "type": "json", "property": "items" },
// The response is parsed here, converting date strings of form "20160223" into date 2016-02-23 "transform": [ { "type": "formula", "field": "year", "expr": "parseInt(substring(datum.timestamp,0,4))" }, { "type": "formula", "field": "month", "expr": "parseInt(substring(datum.timestamp,4,6))" }, { "type": "formula", "field": "day", "expr": "parseInt(substring(datum.timestamp,6,8))" }, { "type": "formula", "field": "date", "expr": "datetime(datum.year,datum.month-1,datum.day)" } ] } ],
"scales": [ // The dates are scaled to the "x" axis - the width of the graph { "name": "x", "type": "time", "range": "width", "domain": {"data": "pageviews","field": "date"} }, // The pageviews are scaled to the "y" axis - the height of the graph // Optional scale parameter can change "linear" to other scales like log // Optional max parameter can fix the upper bound of the graph { "name": "y", "type": "linear", "range": "height", "domain": {"data": "pageviews","field": "views"}, "clamp": true,
"nice": true } ],
// Simple axis with horizontal grid lines "axes": [ { "type": "x", "scale": "x", "ticks": 5, "properties": { "ticks": {"stroke": {"value": "#666666"} }, "labels": {"fill": {"value": "#666666"} }, "axis": {"stroke": {"value": "#666666"}, "strokeWidth": {"value": 2} } } }, { "type": "y", "scale": "y", "ticks": 5, "grid": true, "properties": { "ticks": {"stroke": {"value": "#666666"} }, "labels": {"fill": {"value": "#666666"} }, "grid": {"stroke": {"value": "#666666"}, "strokeWidth": {"value": 2} }, "axis": {"stroke": {"value": "#666666"}, "strokeWidth": {"value": 2} } } } ],
// The graph is drawn with two elements a thick line at the top, and a semi-transparent area below "marks": [ { "type": "line", "from": {"data": "pageviews"}, "properties": { "enter": { "x": {"scale": "x","field": "date"}, "y": {"scale": "y","field": "views"}, "stroke": {"value": "#00f"}, "strokeWidth": {"value": 3}, "interpolate": {"value": "monotone"} } } }, { "type": "area", "from": {"data": "pageviews"}, "properties": { "enter": { "x": {"scale": "x","field": "date"}, "y": {"scale": "y","value": 0}, "y2": {"scale": "y","field": "views"}, "fill": {"value": "#00f"}, "fillOpacity": {"value": 0.35}, "interpolate": {"value": "monotone"} } } } ]
}
</graph>
This template is used on approximately 41,000 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. |
Template parameters
TemplateData for Graph:PageViews
This template inserts a graph of daily pageview statistics (Y axis) over the past N days (X axis) for a page.
Parameter | Description | Type | Status | |
---|---|---|---|---|
Number of days back | 1 | Number of days back to show in the chart
| Number | optional |
Page Title | 2 | Title of the page, with namespace, including needed spaces. If '_' is given, shows the total for the whole site
| Page name | optional |
Domain | 3 | Domain from which to find page views for the given title, if not this wiki. If '_' is given as parameter 2, 'all-projects' can be used here for all wiki sites summary data
| String | optional |
Graph color | color | Shade with which to highlight the data in the chart
| String | optional |
Graph scale | scale | Scaling could be one of these: linear, log, pow, sqrt, quantile, quantize, and threshold
| String | optional |
Maximum Y value axis | max | This optional value might be useful to align multiple graphs side-by-side
| Number | optional |
Width | width | Width for the chart in pixels, if different from the default.
| Number | optional |
Height | height | Height for the chart in pixels, if different from the default.
| Number | optional |
Granularity | granularity | If the 2nd parameter is '_' (shows site stats), set data granularity monthly, daily, or hourly
| String | optional |
platform | platform | no description | Unknown | optional |
interpolate | interpolate | no description | Unknown | optional |
Examples
This graph's main version resides at MediaWiki Template:Graph:PageViews.
Please make all the changes there and copy it everywhere else (until the copying is automated).
{{ Graph:PageViews }} 30 days for the current page (if there is data) |
---|
<graph>
{ // // ATTENTION: This code is maintained at https://www.mediawiki.org/wiki/Template:Graph:PageViews // Please do not modify it anywhere else, as it may get copied and override your changes. // Suggestions can be made at https://www.mediawiki.org/wiki/Template_talk:Graph:PageViews // The graph uses PageViews API https://wikitech.wikimedia.org/wiki/Analytics/PageviewAPI // "version": 2, "width": 800, "height": 200, // The data for this graph comes from the PageView API. The request is made for N days back up to now. "data": [ { "name": "pageviews", "url": "wikirest://wikimedia.org/api/rest_v1/metrics/pageviews/per-article/moasspedia.org/all-access/user/Template%3AGraph%3APageViews/daily/2024021100/2024031200", "format": { "type": "json", "property": "items" }, // The response is parsed here, converting date strings of form "20160223" into date 2016-02-23 "transform": [ { "type": "formula", "field": "year", "expr": "parseInt(substring(datum.timestamp,0,4))" }, { "type": "formula", "field": "month", "expr": "parseInt(substring(datum.timestamp,4,6))" }, { "type": "formula", "field": "day", "expr": "parseInt(substring(datum.timestamp,6,8))" }, { "type": "formula", "field": "date", "expr": "datetime(datum.year,datum.month-1,datum.day)" } ] } ], "scales": [ // The dates are scaled to the "x" axis - the width of the graph { "name": "x", "type": "time", "range": "width", "domain": {"data": "pageviews","field": "date"} }, // The pageviews are scaled to the "y" axis - the height of the graph // Optional scale parameter can change "linear" to other scales like log // Optional max parameter can fix the upper bound of the graph { "name": "y", "type": "linear", "range": "height", "domain": {"data": "pageviews","field": "views"}, "clamp": true, "nice": true } ], // Simple axis with horizontal grid lines "axes": [ { "type": "x", "scale": "x", "ticks": 5, "properties": { "ticks": {"stroke": {"value": "#666666"} }, "labels": {"fill": {"value": "#666666"} }, "axis": {"stroke": {"value": "#666666"}, "strokeWidth": {"value": 2} } } }, { "type": "y", "scale": "y", "ticks": 5, "grid": true, "properties": { "ticks": {"stroke": {"value": "#666666"} }, "labels": {"fill": {"value": "#666666"} }, "grid": {"stroke": {"value": "#666666"}, "strokeWidth": {"value": 2} }, "axis": {"stroke": {"value": "#666666"}, "strokeWidth": {"value": 2} } } } ], // The graph is drawn with two elements a thick line at the top, and a semi-transparent area below "marks": [ { "type": "line", "from": {"data": "pageviews"}, "properties": { "enter": { "x": {"scale": "x","field": "date"}, "y": {"scale": "y","field": "views"}, "stroke": {"value": "#00f"}, "strokeWidth": {"value": 3}, "interpolate": {"value": "monotone"} } } }, { "type": "area", "from": {"data": "pageviews"}, "properties": { "enter": { "x": {"scale": "x","field": "date"}, "y": {"scale": "y","value": 0}, "y2": {"scale": "y","field": "views"}, "fill": {"value": "#00f"}, "fillOpacity": {"value": 0.35}, "interpolate": {"value": "monotone"} } } } ] } </graph> |
{{ Graph:PageViews | 90 | Main Page | en.wikipedia.org }} 90 days for Main Page on English Wikipedia |
<graph>
{ // // ATTENTION: This code is maintained at https://www.mediawiki.org/wiki/Template:Graph:PageViews // Please do not modify it anywhere else, as it may get copied and override your changes. // Suggestions can be made at https://www.mediawiki.org/wiki/Template_talk:Graph:PageViews // The graph uses PageViews API https://wikitech.wikimedia.org/wiki/Analytics/PageviewAPI // "version": 2, "width": 800, "height": 200, // The data for this graph comes from the PageView API. The request is made for N days back up to now. "data": [ { "name": "pageviews", "url": "wikirest://wikimedia.org/api/rest_v1/metrics/pageviews/per-article/en.wikipedia.org/all-access/user/Main%20Page/daily/2023121300/2024031200", "format": { "type": "json", "property": "items" }, // The response is parsed here, converting date strings of form "20160223" into date 2016-02-23 "transform": [ { "type": "formula", "field": "year", "expr": "parseInt(substring(datum.timestamp,0,4))" }, { "type": "formula", "field": "month", "expr": "parseInt(substring(datum.timestamp,4,6))" }, { "type": "formula", "field": "day", "expr": "parseInt(substring(datum.timestamp,6,8))" }, { "type": "formula", "field": "date", "expr": "datetime(datum.year,datum.month-1,datum.day)" } ] } ], "scales": [ // The dates are scaled to the "x" axis - the width of the graph { "name": "x", "type": "time", "range": "width", "domain": {"data": "pageviews","field": "date"} }, // The pageviews are scaled to the "y" axis - the height of the graph // Optional scale parameter can change "linear" to other scales like log // Optional max parameter can fix the upper bound of the graph { "name": "y", "type": "linear", "range": "height", "domain": {"data": "pageviews","field": "views"}, "clamp": true, "nice": true } ], // Simple axis with horizontal grid lines "axes": [ { "type": "x", "scale": "x", "ticks": 5, "properties": { "ticks": {"stroke": {"value": "#666666"} }, "labels": {"fill": {"value": "#666666"} }, "axis": {"stroke": {"value": "#666666"}, "strokeWidth": {"value": 2} } } }, { "type": "y", "scale": "y", "ticks": 5, "grid": true, "properties": { "ticks": {"stroke": {"value": "#666666"} }, "labels": {"fill": {"value": "#666666"} }, "grid": {"stroke": {"value": "#666666"}, "strokeWidth": {"value": 2} }, "axis": {"stroke": {"value": "#666666"}, "strokeWidth": {"value": 2} } } } ], // The graph is drawn with two elements a thick line at the top, and a semi-transparent area below "marks": [ { "type": "line", "from": {"data": "pageviews"}, "properties": { "enter": { "x": {"scale": "x","field": "date"}, "y": {"scale": "y","field": "views"}, "stroke": {"value": "#00f"}, "strokeWidth": {"value": 3}, "interpolate": {"value": "monotone"} } } }, { "type": "area", "from": {"data": "pageviews"}, "properties": { "enter": { "x": {"scale": "x","field": "date"}, "y": {"scale": "y","value": 0}, "y2": {"scale": "y","field": "views"}, "fill": {"value": "#00f"}, "fillOpacity": {"value": 0.35}, "interpolate": {"value": "monotone"} } } } ] } </graph> |
{{ Graph:PageViews | 180 | _ }} Monthly visitors to the current wiki (last 6 months) |
<graph>
{ // // ATTENTION: This code is maintained at https://www.mediawiki.org/wiki/Template:Graph:PageViews // Please do not modify it anywhere else, as it may get copied and override your changes. // Suggestions can be made at https://www.mediawiki.org/wiki/Template_talk:Graph:PageViews // The graph uses PageViews API https://wikitech.wikimedia.org/wiki/Analytics/PageviewAPI // "version": 2, "width": 800, "height": 200, // The data for this graph comes from the PageView API. The request is made for N days back up to now. "data": [ { "name": "pageviews", "url": "wikirest://wikimedia.org/api/rest_v1/metrics/pageviews/aggregate/moasspedia.org/all-access/user/monthly/2023091400/2024031200", "format": { "type": "json", "property": "items" }, // The response is parsed here, converting date strings of form "20160223" into date 2016-02-23 "transform": [ { "type": "formula", "field": "year", "expr": "parseInt(substring(datum.timestamp,0,4))" }, { "type": "formula", "field": "month", "expr": "parseInt(substring(datum.timestamp,4,6))" }, { "type": "formula", "field": "day", "expr": "parseInt(substring(datum.timestamp,6,8))" }, { "type": "formula", "field": "date", "expr": "datetime(datum.year,datum.month-1,datum.day)" } ] } ], "scales": [ // The dates are scaled to the "x" axis - the width of the graph { "name": "x", "type": "time", "range": "width", "domain": {"data": "pageviews","field": "date"} }, // The pageviews are scaled to the "y" axis - the height of the graph // Optional scale parameter can change "linear" to other scales like log // Optional max parameter can fix the upper bound of the graph { "name": "y", "type": "linear", "range": "height", "domain": {"data": "pageviews","field": "views"}, "clamp": true, "nice": true } ], // Simple axis with horizontal grid lines "axes": [ { "type": "x", "scale": "x", "ticks": 5, "properties": { "ticks": {"stroke": {"value": "#666666"} }, "labels": {"fill": {"value": "#666666"} }, "axis": {"stroke": {"value": "#666666"}, "strokeWidth": {"value": 2} } } }, { "type": "y", "scale": "y", "ticks": 5, "grid": true, "properties": { "ticks": {"stroke": {"value": "#666666"} }, "labels": {"fill": {"value": "#666666"} }, "grid": {"stroke": {"value": "#666666"}, "strokeWidth": {"value": 2} }, "axis": {"stroke": {"value": "#666666"}, "strokeWidth": {"value": 2} } } } ], // The graph is drawn with two elements a thick line at the top, and a semi-transparent area below "marks": [ { "type": "line", "from": {"data": "pageviews"}, "properties": { "enter": { "x": {"scale": "x","field": "date"}, "y": {"scale": "y","field": "views"}, "stroke": {"value": "#00f"}, "strokeWidth": {"value": 3}, "interpolate": {"value": "monotone"} } } }, { "type": "area", "from": {"data": "pageviews"}, "properties": { "enter": { "x": {"scale": "x","field": "date"}, "y": {"scale": "y","value": 0}, "y2": {"scale": "y","field": "views"}, "fill": {"value": "#00f"}, "fillOpacity": {"value": 0.35}, "interpolate": {"value": "monotone"} } } } ] } </graph> |
{{ Graph:PageViews | 180 | _ | all-projects | granularity = daily }} Daily visitors to all worldwide wikis (last 6 months) |
<graph>
{ // // ATTENTION: This code is maintained at https://www.mediawiki.org/wiki/Template:Graph:PageViews // Please do not modify it anywhere else, as it may get copied and override your changes. // Suggestions can be made at https://www.mediawiki.org/wiki/Template_talk:Graph:PageViews // The graph uses PageViews API https://wikitech.wikimedia.org/wiki/Analytics/PageviewAPI // "version": 2, "width": 800, "height": 200, // The data for this graph comes from the PageView API. The request is made for N days back up to now. "data": [ { "name": "pageviews", "url": "wikirest://wikimedia.org/api/rest_v1/metrics/pageviews/aggregate/all-projects/all-access/user/daily/2023091400/2024031200", "format": { "type": "json", "property": "items" }, // The response is parsed here, converting date strings of form "20160223" into date 2016-02-23 "transform": [ { "type": "formula", "field": "year", "expr": "parseInt(substring(datum.timestamp,0,4))" }, { "type": "formula", "field": "month", "expr": "parseInt(substring(datum.timestamp,4,6))" }, { "type": "formula", "field": "day", "expr": "parseInt(substring(datum.timestamp,6,8))" }, { "type": "formula", "field": "date", "expr": "datetime(datum.year,datum.month-1,datum.day)" } ] } ], "scales": [ // The dates are scaled to the "x" axis - the width of the graph { "name": "x", "type": "time", "range": "width", "domain": {"data": "pageviews","field": "date"} }, // The pageviews are scaled to the "y" axis - the height of the graph // Optional scale parameter can change "linear" to other scales like log // Optional max parameter can fix the upper bound of the graph { "name": "y", "type": "linear", "range": "height", "domain": {"data": "pageviews","field": "views"}, "clamp": true, "nice": true } ], // Simple axis with horizontal grid lines "axes": [ { "type": "x", "scale": "x", "ticks": 5, "properties": { "ticks": {"stroke": {"value": "#666666"} }, "labels": {"fill": {"value": "#666666"} }, "axis": {"stroke": {"value": "#666666"}, "strokeWidth": {"value": 2} } } }, { "type": "y", "scale": "y", "ticks": 5, "grid": true, "properties": { "ticks": {"stroke": {"value": "#666666"} }, "labels": {"fill": {"value": "#666666"} }, "grid": {"stroke": {"value": "#666666"}, "strokeWidth": {"value": 2} }, "axis": {"stroke": {"value": "#666666"}, "strokeWidth": {"value": 2} } } } ], // The graph is drawn with two elements a thick line at the top, and a semi-transparent area below "marks": [ { "type": "line", "from": {"data": "pageviews"}, "properties": { "enter": { "x": {"scale": "x","field": "date"}, "y": {"scale": "y","field": "views"}, "stroke": {"value": "#00f"}, "strokeWidth": {"value": 3}, "interpolate": {"value": "monotone"} } } }, { "type": "area", "from": {"data": "pageviews"}, "properties": { "enter": { "x": {"scale": "x","field": "date"}, "y": {"scale": "y","value": 0}, "y2": {"scale": "y","field": "views"}, "fill": {"value": "#00f"}, "fillOpacity": {"value": 0.35}, "interpolate": {"value": "monotone"} } } } ] } </graph> |
Usage tips
Width in Talk headers – When using Graph:PageViews in the header section of an article Talk page, use |width=565
in order to generate a graph element that matches other standard elements often found in talk page headers.
Captions – Some talk pages embed Graph:PageViews within {{Info}} to add a leading caption.
Vertical height – Save vertical space in a Talk page header, with the collapse templates {{cot}}/{{cob}}. Example: this talk page uses standard talk header width, adds a caption, and collapses the graphs.