Template:Graph:PageViews/doc

From blackwiki
Jump to navigation Jump to search

Template parameters

This is the TemplateData documentation for this template used by VisualEditor and other tools; see the monthly parameter usage report for this template.

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.

Template parameters

This template prefers block formatting of parameters.

ParameterDescriptionTypeStatus
Number of days back1

Number of days back to show in the chart

Default
30
Numberoptional
Page Title2

Title of the page, with namespace, including needed spaces. If '_' is given, shows the total for the whole site

Default
Name of the current article page (even if on talk page)
Example
Main Page
Pageoptional
Domain3

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

Default
Current wiki
Example
en.wikipedia.org
Stringoptional
Graph colorcolor

Shade with which to highlight the data in the chart

Default
#00f
Example
#f00
Stringoptional
Graph scalescale

Scaling could be one of these: linear, log, pow, sqrt, quantile, quantize, and threshold

Default
linear
Example
log
Stringoptional
Maximum Y value axismax

This optional value might be useful to align multiple graphs side-by-side

Default
Automatically scaled to the data.
Example
10000
Numberoptional
Widthwidth

Width for the chart in pixels, if different from the default.

Default
800
Numberoptional
Heightheight

Height for the chart in pixels, if different from the default.

Default
200
Numberoptional
Granularitygranularity

If the 2nd parameter is '_' (shows site stats), set data granularity monthly, daily, or hourly

Default
monthly
Stringoptional
Platformplatform

no description

Unknownoptional
Interpolateinterpolate

no description

Unknownoptional

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/blackwiki.org/all-access/user/Template%3AGraph%3APageViews%2Fdoc/daily/2023062200/2023072200",
     "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/2023042300/2023072200",
     "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/blackwiki.org/all-access/user/monthly/2023012300/2023072200",
     "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/2023012300/2023072200",
     "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 headersTemplate:SndWhen 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.

CaptionsTemplate:SndSome talk pages embed Graph:PageViews within {{Info}} to add a leading caption.

Vertical heightTemplate:SndSave 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.

See also