Template:Graph:Lines/doc: Difference between revisions

From Bonkipedia
[[mw:]]>Clump
m (Reverted edits by Gohar7 (talk) to last version by Cedar101)
 
m (1 revision imported: Template documentation pages)
 
(No difference)

Latest revision as of 18:03, 12 November 2022

warning Warning:Do not edit. This page is maintained by an automated tool. All edits should be done at [[mw:{{{1}}}|mediawiki.org]]. (translate this warning)

This graph's main version resides at Template:Graph:Lines . Please make or suggest all the changes there, and copy it everywhere else (until the copying is automated)

This graph draws one or more independent numeric data series as lines. The data must be stored on Commons' Data namespace or come from Wikidata Query Service.

Gender pay gap

{{Graph:Lines
| table=bls.gov/US Women's weekly earnings as a percent of men's by age, annual averages.tab
| type=year | xField=year
| series="age_16_24", "age_25_34", "age_35_44", "age_45_54"
| title=Gender pay gap in the United States
| yZero=false | xAxis=Year | yAxis=Percentage | yMax=100 | yGrid=y | width=500 | legend=Age group
| vAnnotationsValues={"text": "Fictitious event", "x": 1990}
}}
<graph>

{

 //
 // ATTENTION: This code is maintained at https://www.mediawiki.org/wiki/Template:Graph:Lines
 //            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:Lines
 //
 // Template translation is in https://commons.wikimedia.org/wiki/Data:Original/Template:Graphs.tab
 //
 "version": 2,
 "width": 500,
 "height": 300,

"padding": "strict",

 "signals": [{"name": "rightwidth", "expr": "width + padding.right", "init":"500"}],
 "data": [{
   "name": "chart",
   "url": "tabular:///bls.gov/US Women's weekly earnings as a percent of men's by age, annual averages.tab",
   "format": {"type": "json"
     , "property": "data"
     
   },
   "transform": [


     // Convert xField parameter into a field "_xfield"
     {"type": "formula", "field": "_xfield", "expr":

"datetime(datum.year, 0, 1)"

     }
     , {"type": "sort", "by": ["_xfield"]}

, {"type": "fold", "fields": ["age_16_24", "age_25_34", "age_35_44", "age_45_54"]} , {"type": "formula", "field": "_yfield", "expr": "datum.value" }

   ]
 },

// source of labels for `tabletype=tab`

 {
   "name": "labels",
   "url": "tabular:///bls.gov/US Women's weekly earnings as a percent of men's by age, annual averages.tab",
   "format": {"type": "json", "property": "fields"},
   "transform": [


   ]
 },

// Each vertical annotation is expected to be x-scale typed `x`, string `text`,

   // and optional string `color` (e.g. "#4d2800")
   {
     "name": "vAnnotations",
     "values": [{"text": "Fictitious event", "x": 1990}],
     "transform": [
       

// in case of `type=year` convert year number to UNIX timestamp

       {"type": "formula", "field": "x", "expr": "datetime(datum.x, 0, 1)"},
       // expected item format `{"text": "...", "color": "#000", x: _ }`
       { "type": "formula", "field": "text", "expr": "datum.text || " },
       { "type": "formula", "field": "color", "expr": "datum.color || '#54595d'" }
     ]
   },
 ],
 "scales": [
   {
     "name": "x",
     "type": "time",
     "domain": {"data": "chart", "field": "_xfield"},
     "range": "width",
     


   },
   {
     "name": "y",
     "type": "linear",
     "range": "height",
     "domain": {"data": "chart", "field": "_yfield"},
     "zero": false,
     
     "domainMax": 100,
     
   },
   {
     "name": "color",
     "type": "ordinal",
     "range": "category10", 
     "domain": {"data": "chart", "field": "key"}
   },

{

     "name": "labels",
     "type": "ordinal",

"domain": {"data": "labels", "field": "name"},

     "range": {"data": "labels", "field": "title"},
   }
 ],

"legends": [{

   "fill": "color",
   "stroke": "color",

"title": "Age group", "properties": { "labels": { "text": {"scale": "labels", "field": "data"} } }

 }],
 "axes": [
   {
     "scale": "x", "type": "x", "tickSizeEnd": 0,
     "ticks": 7,
     "title": "Year",
     
     
     "properties": { 
       "labels": { 
         
         
       } 
      }
   },
   {
     "scale": "y", "type": "y", "tickSizeEnd": 0,
     
     "title": "Percentage",
     
     "grid": true,
     "properties": { 
       "labels": { 
         
         
       } 
      }
   }
 ],
 "marks": [
   // Group data by the group parameter or "key", and draw lines, one line per group
   {
     "type": "group",
     "from": {
       "data": "chart",
       "transform": [{"type": "facet", "groupby": ["key"]}]
     },
     "marks": [
       {
         "type": "line",
         "properties": {
           "hover": {
             "stroke": {"value": "red"}
           },
           "update": {
             "stroke": {"scale": "color", "field": "key"}
           },
           "enter": {
             "y": {"scale": "y", "field": "_yfield"},
             "x": {"scale": "x", "field": "_xfield"},
             "stroke": {"scale": "color", "field": "key"},
             "interpolate": {"value": "linear"},
             "strokeWidth": {"value": 2.5}
           }
         }
       }
       
     ],
   },

// vertical annotations dashed line

   {
     "type": "rule",
     "properties": {
       "update": {
         "x": {"scale": "x", "field": "x"},
         "y": {"value": 0},
         "y2": {"field": {"group": "height"} },
         "stroke": {"field": "color"},
         "opacity": {"value": 0.75},
         "strokeWidth": {"value": 1},
         "strokeDash": {"value": [6,1]}
       }
     },
     "from": {"data": "vAnnotations"}
   },
   // vertical annotations text
   {
     "type": "text",
     "properties": {
       "update": {
         "x": {"scale": "x", "field": "x"},
         "y": {"value": 0},
         "align": {"value": "right"},
         "dx": {"value": -3},
         "dy": {"value": 3},
         "baseline": {"value": "top"},
         "text": {"field": "text"},
         "angle": {"value": -90},
         "opacity": {"value": 0.75},
         "fill": {"field": "color"}
       }
     },
     "from": {"data": "vAnnotations"}
   },


// Draw title at the top of the graph

   {
     "type": "text",
     "properties": {
       "enter": {
         "y": {"value": -15},

"x": {"signal": "rightwidth", "mult": 0.5, "offset": 0 },

         "text": {"value": "Gender pay gap in the United States"},
         "fontWeight": {"value": "bold"},
         "align": {"value": "center"},
         "baseline": {"value": "bottom"},
         "fill": {"value": "#000"}
       }
     }
   }
 ]

} </graph>

See or edit raw graph data.

Paintings per decades

{{Graph:Lines
| tabletype=query | table=SELECT ?decade (COUNT(?decade) AS ?count) WHERE {
  ?item wdt:P31 wd:Q3305213 .
  ?item wdt:P571 ?inception .
  BIND( year(?inception) as ?year ). 
  BIND( ROUND(?year/10)*10 as ?decade ) .
  FILTER( ?year > 1400)
  FILTER( ?year <= year(now()))
} GROUP BY ?decade ORDER BY ?decade
| series="count" | type=year | xField=decade
|yAxisFormat=s
| yZero=false  | width=550
| title=Paintings by decade
| hAnnotationsValues={"text": "Fictitious value", "y": 20000}
}}
<graph>

{

 //
 // ATTENTION: This code is maintained at https://www.mediawiki.org/wiki/Template:Graph:Lines
 //            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:Lines
 //
 // Template translation is in https://commons.wikimedia.org/wiki/Data:Original/Template:Graphs.tab
 //
 "version": 2,
 "width": 550,
 "height": 300,

"padding": "strict",

 "signals": [{"name": "rightwidth", "expr": "width + padding.right", "init":"550"}],
 "data": [{
   "name": "chart",
   "url": "wikidatasparql:///?query=SELECT%20%3Fdecade%20%28COUNT%28%3Fdecade%29%20AS%20%3Fcount%29%20WHERE%20%7B%0A%20%20%3Fitem%20wdt%3AP31%20wd%3AQ3305213%20.%0A%20%20%3Fitem%20wdt%3AP571%20%3Finception%20.%0A%20%20BIND%28%20year%28%3Finception%29%20as%20%3Fyear%20%29.%20%0A%20%20BIND%28%20ROUND%28%3Fyear%2F10%29%2A10%20as%20%3Fdecade%20%29%20.%0A%20%20FILTER%28%20%3Fyear%20%3E%201400%29%0A%20%20%20%20FILTER%28%20%3Fyear%20%3C%3D%20year%28now%28%29%29%29%0A%7D%20GROUP%20BY%20%3Fdecade%20ORDER%20BY%20%3Fdecade",
   "format": {"type": "json"
     
     
   },
   "transform": [


     // Convert xField parameter into a field "_xfield"
     {"type": "formula", "field": "_xfield", "expr":

"datetime(datum.decade, 0, 1)"

     }
     , {"type": "sort", "by": ["_xfield"]}

, {"type": "fold", "fields": ["count"]} , {"type": "formula", "field": "_yfield", "expr": "datum.value" }

   ]
 },


// Each horizontal annotation is expected to be numeric `y`, string `text`,

   // and optional string `color` (e.g. "#4d2800")
   {
     "name": "hAnnotations",
     "values": [{"text": "Fictitious value", "y": 20000}],
     "transform": [
       
       // expected item format `{"text": "...", "color": "#000", y: 0}`
       { "type": "formula", "field": "text", "expr": "datum.text || " },
       { "type": "formula", "field": "color", "expr": "datum.color || '#54595d'" }
     ]
   },
 ],
 "scales": [
   {
     "name": "x",
     "type": "time",
     "domain": {"data": "chart", "field": "_xfield"},
     "range": "width",
     


   },
   {
     "name": "y",
     "type": "linear",
     "range": "height",
     "domain": {"data": "chart", "field": "_yfield"},
     "zero": false,
     
     
     
   },
   {
     "name": "color",
     "type": "ordinal",
     "range": "category10", 
     "domain": {"data": "chart", "field": "key"}
   },

{

     "name": "labels",
     "type": "ordinal",

"domain": ["count"],

     "range": ["count"],
   }
 ],
 "axes": [
   {
     "scale": "x", "type": "x", "tickSizeEnd": 0,
     "ticks": 7,
     
     
     
     "properties": { 
       "labels": { 
         
         
       } 
      }
   },
   {
     "scale": "y", "type": "y", "tickSizeEnd": 0,
     
     
     "format": "s",
     
     "properties": { 
       "labels": { 
         
         
       } 
      }
   }
 ],
 "marks": [
   // Group data by the group parameter or "key", and draw lines, one line per group
   {
     "type": "group",
     "from": {
       "data": "chart",
       "transform": [{"type": "facet", "groupby": ["key"]}]
     },
     "marks": [
       {
         "type": "line",
         "properties": {
           "hover": {
             "stroke": {"value": "red"}
           },
           "update": {
             "stroke": {"scale": "color", "field": "key"}
           },
           "enter": {
             "y": {"scale": "y", "field": "_yfield"},
             "x": {"scale": "x", "field": "_xfield"},
             "stroke": {"scale": "color", "field": "key"},
             "interpolate": {"value": "linear"},
             "strokeWidth": {"value": 2.5}
           }
         }
       }
       
     ],
   },


// horizontal annotations dashed line

   {
     "type": "rule",
     "properties": {
       "update": {
         "y": {"scale": "y", "field": "y"},
         "x": {"value": 0 },
         "x2": {"field": {"group": "width"} },
         "stroke": {"field": "color"},
         "opacity": {"value": 0.75},
         "strokeWidth": {"value": 1},
         "strokeDash": {"value": [6,1]}
       }
     },
     "from": {"data": "hAnnotations"}
   },
   // horizontal annotations text
   {
     "type": "text",
     "properties": {
       "update": {
         "y": {"scale": "y", "field": "y", "offset": 3},
         "x": {"value": 0, "offset": 3},
         "baseline": {"value": "top"},
         "text": {"field": "text"},
         "angle": {"value": 0},
         "opacity": {"value": 0.75},
         "fill": {"field": "color"}
       }
     },
     "from": {"data": "hAnnotations"}
   },

// Draw title at the top of the graph

   {
     "type": "text",
     "properties": {
       "enter": {
         "y": {"value": -15},

"x": {"signal": "rightwidth", "mult": 0.5, "offset": 0 },

         "text": {"value": "Paintings by decade"},
         "fontWeight": {"value": "bold"},
         "align": {"value": "center"},
         "baseline": {"value": "bottom"},
         "fill": {"value": "#000"}
       }
     }
   }
 ]

} </graph>

Population in countries bordering Germany

Wikidata query produces three columns - year, population size, and country name. This graph shows one line per country.
{{Graph:Lines
| tabletype=query | table=
#Population of countries sharing a border with Germany
SELECT ?year ?population ?countryLabel WHERE {
  {
    SELECT ?country ?year (AVG(?populations) AS ?population) WHERE {
      {
        SELECT ?country (YEAR(?date) AS ?year) ?populations WHERE {
          ?country wdt:P47 wd:Q183.
          ?country p:P1082 ?populationStatement.
          ?populationStatement ps:P1082 ?populations.
          ?populationStatement pq:P585 ?date.
        }  
      } FILTER( ?year >= 1900)
    }
    GROUP BY ?country ?year
  }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
| type=year | xField=year | group=countryLabel | value=population
| colorscheme=category20
| legend=- | xGrid=y | yGrid=y | yTicks=7| width=600
| colorscheme=category20
|yAxisFormat=.1s
}}
<graph>

{

 //
 // ATTENTION: This code is maintained at https://www.mediawiki.org/wiki/Template:Graph:Lines
 //            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:Lines
 //
 // Template translation is in https://commons.wikimedia.org/wiki/Data:Original/Template:Graphs.tab
 //
 "version": 2,
 "width": 600,
 "height": 300,

"padding": "strict",

 "signals": [{"name": "rightwidth", "expr": "width + padding.right", "init":"600"}],
 "data": [{
   "name": "chart",
   "url": "wikidatasparql:///?query=%23Population%20of%20countries%20sharing%20a%20border%20with%20Germany%2C%20fixed%0ASELECT%20%3Fyear%20%3Fpopulation%20%3FcountryLabel%20WHERE%20%7B%0A%20%20%7B%0A%20%20%20%20SELECT%20%3Fcountry%20%3Fyear%20%28AVG%28%3Fpopulations%29%20AS%20%3Fpopulation%29%20WHERE%20%7B%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20SELECT%20%3Fcountry%20%28YEAR%28%3Fdate%29%20AS%20%3Fyear%29%20%3Fpopulations%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%3Fcountry%20wdt%3AP47%20wd%3AQ183.%0A%20%20%20%20%20%20%20%20%20%20%3Fcountry%20p%3AP1082%20%3FpopulationStatement.%0A%20%20%20%20%20%20%20%20%20%20%3FpopulationStatement%20ps%3AP1082%20%3Fpopulations.%0A%20%20%20%20%20%20%20%20%20%20%3FpopulationStatement%20pq%3AP585%20%3Fdate.%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%20%20%20FILTER%28%20%3Fyear%20%3E%3D%201900%29%0A%20%20%20%20%7D%0A%20%20%20%20GROUP%20BY%20%3Fcountry%20%3Fyear%0A%20%20%7D%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22en%22.%20%7D%0A%7D",
   "format": {"type": "json"
     
     
   },
   "transform": [


     // Convert xField parameter into a field "_xfield"
     {"type": "formula", "field": "_xfield", "expr":

"datetime(datum.year, 0, 1)"

     }
     , {"type": "sort", "by": ["_xfield"]}

, {"type": "formula", "field": "_yfield", "expr": "datum.population" }

   ]
 },



 ],
 "scales": [
   {
     "name": "x",
     "type": "time",
     "domain": {"data": "chart", "field": "_xfield"},
     "range": "width",
     


   },
   {
     "name": "y",
     "type": "linear",
     "range": "height",
     "domain": {"data": "chart", "field": "_yfield"},
     
     
     
     
   },
   {
     "name": "color",
     "type": "ordinal",
     "range": "category20", 
     "domain": {"data": "chart", "field": "countryLabel"}
   },
 ],

"legends": [{

   "fill": "color",
   "stroke": "color",


 }],
 "axes": [
   {
     "scale": "x", "type": "x", "tickSizeEnd": 0,
     "ticks": 7,
     
     
     "grid": true,
     "properties": { 
       "labels": { 
         
         
       } 
      }
   },
   {
     "scale": "y", "type": "y", "tickSizeEnd": 0,
     "ticks": 7,
     
     "format": ".1s",
     "grid": true,
     "properties": { 
       "labels": { 
         
         
       } 
      }
   }
 ],
 "marks": [
   // Group data by the group parameter or "key", and draw lines, one line per group
   {
     "type": "group",
     "from": {
       "data": "chart",
       "transform": [{"type": "facet", "groupby": ["countryLabel"]}]
     },
     "marks": [
       {
         "type": "line",
         "properties": {
           "hover": {
             "stroke": {"value": "red"}
           },
           "update": {
             "stroke": {"scale": "color", "field": "countryLabel"}
           },
           "enter": {
             "y": {"scale": "y", "field": "_yfield"},
             "x": {"scale": "x", "field": "_xfield"},
             "stroke": {"scale": "color", "field": "countryLabel"},
             "interpolate": {"value": "linear"},
             "strokeWidth": {"value": 2.5}
           }
         }
       }
       
     ],
   },



// Draw title at the top of the graph

   {
     "type": "text",
     "properties": {
       "enter": {
         "y": {"value": -15},

"x": {"signal": "rightwidth", "mult": 0.5, "offset": 0 },

         "text": {"value": "Population of countries bordering Germany"},
         "fontWeight": {"value": "bold"},
         "align": {"value": "center"},
         "baseline": {"value": "bottom"},
         "fill": {"value": "#000"}
       }
     }
   }
 ]

} </graph>

This graph draws one or more independent numeric data series as lines. The data must be stored on Commons' Data namespace or come from Wikidata Query Service.

Template parameters

ParameterDescriptionTypeStatus
Table typetabletype

Specifies the type of the table data. "tab" (default) uses data namespace on commons, without the data: prefix. "query" sends request to wikidata query service.

Default
tab
Stringoptional
Tabletable

Data page name on Commons, without the Data: prefix. The table should contain xField column, like year or date, and one or more series columns to plot. If tabletype parameter is set to "query", this value is the query.

Stringrequired
X axis typetype

Type of the x axis - time (e.g. "2015-10" or "2013-03-08"), year (integer, but treated as a year), linear (numbers), ordinal (anything).

Default
year
Stringsuggested
X fieldxField

Id of the data column that contains values for the X axis. If type=year, xField is also "year" by default.

Stringrequired
Seriesseries

If each line is represented by a separate column of data (or if there is only one column), list of the data columns to show as lines. Must be in quotes, and listed by field IDs if coming from a .tab page: "field1", "field2", "field3".

Stringoptional
Groupgroup

If line color depends on just one column, specify that column's ID, instead of the series parameter.

Stringoptional
Valuevalue

If line color depends on one column, this parameter should be set to the column which has the values.

Stringoptional
Filterfilter

Optionally filter data with an template expression parameter e.g. `filter = datum.some_dataset_field > 1900 && datum.some_dataset_field < 2000` where `some_dataset_field` means some valid field of displayed dataset

Stringoptional
X axis starts at 0xAxisZero, xZero

Force to start or not to start X axis with zero. Can be either true or false.

Stringoptional
Y axis zero starts at 0yAxisZero, yZero

Force to start or not to start Y axis with zero. Can be either true or false.

Stringoptional
X axis scale clampxAxisClamp

Épingle sur l'échelle de l'axe X. Les courbes au delà de cette épingle seront cachées.

Booleanoptional
Y axis scale clampyAxisClamp

Épingle sur l'échelle de l'axe Y. Les courbes au delà de cette épingle seront cachées.

Booleanoptional
X axis minimumxAxisMin, xMin

Force X axis to start from this value.

Numberoptional
X axis maximumxAxisMax, xMax

Force X axis to end with this value.

Numberoptional
Y axis minimumyAxisMin, yMin

Force Y axis to start from this value.

Numberoptional
Y axis maximumyAxisMax, yMax

Force Y axis to end with this value.

Numberoptional
Y axis scaleyScale

Set Y axis scaling type - linear, log and sqrt.

Default
linear
Stringoptional
Replace zero valuesreplaceZerosWith

Replaces 0 values in Y data field. Recommended to be use alongside with yScale=log (else zeros will be filtered out).

Numberoptional
Titletitle

Title of the whole graph.

Stringoptional
Title horizontal alignmenttitleXAlign

Horizontal alignment of title, could be one of: left, center, right

Stringoptional
Title horizontal offsettitleXOffset

Horizontal offset of title position, could be negative, to shift title to the left, or positive to shift title to the right

Numberoptional
X axis titlexAxisTitle

Title of the X axis.

Stringoptional
Y axis titleyAxisTitle

Title of the Y axis.

Stringoptional
X axis formatxAxisFormat

Changes the formatting of the X axis labels

Default
%b %y (for dates)
Stringoptional
Y axis formatyAxisFormat

Changes the formatting of the Y axis labels

Default
,d (for numbers)
Stringoptional
X axis labels anglexAxisAngle

Rotates the x axis labels by the specified angle. Recommended values are: -45, +45, -90, +90.

Numberoptional
Y axis labels angleyAxisAngle

Rotates the y axis labels by the specified angle.

Numberoptional
X axis labels font sizexAxisFontSize

no description

Numberoptional
Y axis labels font sizeyAxisFontSize

no description

Numberoptional
X axis gridxGrid

Show grid lines for X axis.

Booleanoptional
Y axis gridyGrid

Show grid lines for Y axis.

Booleanoptional
X axis ticksxTicks, xAxisTicks

How many ticks to show on X axis. 7 by default. '-' value makes it automatic.

Default
7
Numberoptional
Y axis ticksyTicks, yAxisTicks

How many ticks to show on Y axis. Auto '-' by default.

Default
-
Numberoptional
Raw vertical annotation valuesvAnnotationsValues

Supply all annotation values as a list of JSON objects: {"text": "Big event", "x": 1980}, ...

Stringoptional
Raw horizontal annotation valueshAnnotationsValues

Supply all horizontal annotation values as a list of JSON objects: {"text":"Big event", "y": 980}, ...

Stringoptional
Vertical annotation tablevAnnotationsTable

Data page name on Commons, without the Data: prefix. The table must contain "x" column, and optional "text" and "color" columns.

Stringoptional
Horizontal annotation tablehAnnotationsTable

Data page name on Commons, without the Data: prefix. The table must contain "y" column, and optional "text" and "color" columns.

Stringoptional
Vertical annotation data transformsvAnnotationsTransforms

no description

Stringoptional
Horizontal annotation data transformshAnnotationsTransforms

no description

Stringoptional
Legendlegend

Title of the legend. "-" shows the legend without title.

Stringoptional
Widthwidth

no description

Numberoptional
Heightheight

no description

Numberoptional
Chart sizing modechartSizing

Chart sizing mode, could be one of: fit, pad. Use `fit` to force resulting chart canvas sizes to be exactly equal to provided width and height values. Use `pad` to define prefered plotting size with provided width and height values, and let Vega increase overall chart size to include legend and title (if any)

Default
fit
Stringoptional
Colorscolors

The colors of the lines, specified as a list like red, green. It has priority over colorscheme

Stringoptional
Color schemecolorscheme

The colors of the lines, specified as Vega defined rangeliteral.

Default
category10
Stringoptional
Line widthlinewidth

Line width for line charts or distance between the pie segments for pie charts.

Default
2.5
Numberoptional
Debugdebug

Debug output: if set, will show graph as raw JSON.

Stringoptional

Edit parameter translations