Jump to content

Template:Graph:PageViews

From Meta, a Wikimedia project coordination wiki
Template documentation


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:PageViews | 90 | Main Page | en.wikipedia.org }}
90 days for Main Page on English Wikipedia
{{ Graph:PageViews | 180 | _ }}
Monthly visitors to the current wiki (last 6 months)
{{ Graph:PageViews | 180 | _ | all-projects | granularity = daily }}
Daily visitors to all worldwide wikis (last 6 months)
{{ Graph:PageViews | 30 | Main Page | en.wikipedia.org}}
30 days for Main Page on English Wikipedia
{{ Graph:PageViews | 30 | Main Page | en.wikipedia.org | platform = desktop}}
30 days for Main Page on English Wikipedia - desktop computer browsers
{{ Graph:PageViews | 30 | Main Page | en.wikipedia.org | platform = mobile-web}}
30 days for Main Page on English Wikipedia - mobile browsers
{{ Graph:PageViews | 30 | Main Page | en.wikipedia.org | platform = mobile-app}}
30 days for Main Page on English Wikipedia - mobile applications

Template may be used with different parameter order. For example, in English Wikipedia

  • {{Graph:PageViews|90|Main Page}}
  • {{Graph:PageViews|Main Page|90}}
  • {{Graph:PageViews|Main Page|en.wikipedia.org|90}}

will give the same output.

TemplateData[edit]

Inserts a graph with the page views statistics for the past N days of a page.

Template parameters[Edit template data]

This template prefers block formatting of parameters.

Parameter Description Type Status
Number of days back 1

Number of days back to show in the chart

Default
30
Number optional
Page Title 2

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
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

Default
Current wiki
Example
en.wikipedia.org
String optional
Graph color color

Shade with which to highlight the data in the chart

Default
#00f
Example
#f00
String optional
Graph scale scale

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

Default
linear
Example
log
String optional
Maximum Y value axis max

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

Default
Automatically scaled to the data.
Example
10000
Number optional
Width width

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

Default
400
Number optional
Height height

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

Default
200
Number optional
Platform platform

Computer platform could be one of these: all-access (all platforms together), desktop (regular browsers), mobile-web (mobile browsers), mobile-app (mobile wiki applications)

Default
all-access
String optional
Granularity granularity

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

Default
monthly
String optional
interpolate interpolate

Type of line interpolation. See https://github.com/vega/vega/wiki/Marks#line

Default
monotone
Example
linear, step-before, step-after, basis, basis-open, basis-closed, bundle, cardinal, cardinal-open, cardinal-closed, monotone
String optional
<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": 400,
  "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/meta.wikimedia.org/all-access/user/Template%3AGraph%3APageViews/daily/2024041300/2024051300",
      "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>