> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/fi/alakohtaiset/08-pgfplots-package.md).

# Pgfplots-paketti

## Johdanto

Se `pgfplots` paketti, joka perustuu [`TikZ`](/latex/fi/kuvat-ja-taulukot/05-tikz-package.md), on tehokas visualisointityökalu ja ihanteellinen tieteellisten/teknisten grafiikoiden luomiseen. Perusajatus on, että annat syöttödatan/-kaavan ja `pgfplots` hoitaa loput.

### asiakirjan johdanto-osa

Jotta voit käyttää `pgfplots` paketin lisäämiseksi asiakirjaasi lisää johdanto-osaan seuraava rivi:

`\usepackage{pgfplots}`

Voit myös määrittää `pgfplots` käyttäytymisen asiakirjan johdanto-osassa. Esimerkiksi jokaisen kuvaajan koon muuttamiseksi ja taaksepäinyhteensopivuuden varmistamiseksi (suositeltavaa) lisää seuraava rivi:

`\pgfplotsset{width=10cm,compat=1.9}`

Tämä muuttaa jokaisen `pgfplot` kuvaajan koon 10 senttimetriin, mikä on valtava; voit käyttää eri yksiköitä (pt, mm, in). *compat* parametri on sitä varten, että koodi toimii pakettiversiossa 1.9 tai uudemmassa.

### Käännösaika (lyhyt taustatieto)

Kun alkuperäinen TeX-moottori suunniteltiin/kirjoitettiin yli 40 vuotta sitten, sitä ei suunniteltu *suoraan* grafiikan tuottamiseen — niiden oli tarkoitus olla ulkoisten ohjelmien (esim. MetaPostin) luomia tiedostoja, jotka tuodaan ladottuun asiakirjaan. pdfTeXin ilmaantuminen — joka perustuu läheisesti alkuperäiseen TeX-ohjelmistoon — toi mukanaan mahdollisuuden luoda grafiikkaa *suoraan* käyttämällä pdfTeXin uusia sisäänrakennettuja TeX-kielikomentoja (joita kutsutaan *primitiiveistä*), jotka voivat tuottaa PDF-operaattoreita/-dataa, joita tarvitaan grafiikan tuottamiseen. pdfTeXin luominen johti kehittyneiden LaTeX-grafiikkapakettien, kuten `TikZ`, `pgfplots` jne., kehittämiseen, jotka pystyvät tuottamaan grafiikkaa, joka on koodattu käyttämällä korkean tason LaTeX-komentoja.

Kulissien takana ja syvällä pdfTeX-moottorin (ja muiden moottoreiden) sisällä nämä korkean tason LaTeX-grafiikkakomennot täytyy käsitellä "muuntamalla" ne takaisin matalan tason pdfTeX-moottorin (primitiivi)komennoiksi, jotka todella tuottavat (ulos) ne PDF-operaattorit, joita tarvitaan tuloksena syntyvän kuva(t) tuottamiseen. Tämä graafisten LaTeX-komentojen käsittely — primitiivien laajentaminen ja suorittaminen — voi viedä ei-vähäisen määrän aikaa. Jopa yksi korkean tason LaTeX-grafiikkakomento yhdessä sitä vastaavan datan kanssa saattaa vaatia *monien* matalan tason TeX-moottorin (primitiivi)komentojen toistuvaa suorittamista. Loppukäyttäjän näkökulmasta asiakirjat, jotka sisältävät useita `pgfplots` kuvaajia ja/tai erittäin monimutkaista grafiikkaa, voivat viedä huomattavan paljon aikaa renderöidä (kääntää).

### Käännösaikojen vähentäminen

Kasvattaaksesi asiakirjan käännöksen nopeutta voit määrittää `pgfplots` paketin viemään kuvaajat erillisiin PDF-tiedostoihin ja tuomaan ne sitten asiakirjaan: käännä kerran, käytä sitten kuvaajat uudelleen. Tee se lisäämällä alla näkyvä koodi johdanto-osaan:

```
\usepgfplotslibrary{external}
\tikzexternalize
```

Katso [tätä ohjeartikkelia](/latex/fi/kysymykset-ja-vastaukset/60-i-have-a-lot-of-tikz-matlab2tikz-or-pgfplots-figures-so-i-m-getting-a-compilation-timeout.-can-i.md) lisätietoja varten siitä, kuinka tikz-ulkopuolistaminen otetaan käyttöön Overleaf-projektissasi.

## Perusesimerkki (myös kuvaajien ulkopuolistaminen)

```latex
\documentclass{article}
\usepackage[margin=0.25in]{geometry}
\usepackage{pgfplots}
\pgfplotsset{width=10cm,compat=1.9}

% Ulkopuolistamme kuvaajat
\usepgfplotslibrary{external}
\tikzexternalize

\begin{document}

Ensimmäinen esimerkki on 2D- ja 3D-matemaattisten lausekkeiden piirto vierekkäin.

% Tästä alkaa 2D-kuvaaja
\begin{tikzpicture}
\begin{axis}
\addplot[color=red]{exp(x)};
\end{axis}
\end{tikzpicture}
% Tästä päättyy 2D-kuvaaja
\hskip 5pt
% Tästä alkaa 3D-kuvaaja
\begin{tikzpicture}
\begin{axis}
\addplot3[
    surf,
]
{exp(-x^2-y^2)*x};
\end{axis}
\end{tikzpicture}
% Tästä päättyy 3D-kuvaaja

\end{document}
```

[Avaa tämä `pgfplots` esimerkki Overleafissa.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=pgfplots+example+1\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bmargin%3D0.25in%5D%7Bgeometry%7D%0A%5Cusepackage%7Bpgfplots%7D%0A%5Cpgfplotsset%7Bwidth%3D10cm%2Ccompat%3D1.9%7D%0A%0A%25+We+will+externalize+the+figures%0A%5Cusepgfplotslibrary%7Bexternal%7D%0A%5Ctikzexternalize%0A%0A%5Cbegin%7Bdocument%7D%0A%0AFirst+example+is+2D+and+3D+math+expressions+plotted+side-by-side.%0A%0A%25Here+begins+the+2D+plot%0A%5Cbegin%7Btikzpicture%7D%0A%5Cbegin%7Baxis%7D%0A%5Caddplot%5Bcolor%3Dred%5D%7Bexp%28x%29%7D%3B%0A%5Cend%7Baxis%7D%0A%5Cend%7Btikzpicture%7D%0A%25Here+ends+the+2D+plot%0A%5Chskip+5pt%0A%25Here+begins+the+3D+plot%0A%5Cbegin%7Btikzpicture%7D%0A%5Cbegin%7Baxis%7D%0A%5Caddplot3%5B%0A++++surf%2C%0A%5D%0A%7Bexp%28-x%5E2-y%5E2%29%2Ax%7D%3B%0A%5Cend%7Baxis%7D%0A%5Cend%7Btikzpicture%7D%0A%25Here+ends+the+3D+plot%0A%0A%5Cend%7Bdocument%7D)

Seuraava kuva näyttää yllä olevan koodin tuottaman tuloksen:

![Plgplotsex1OLV2.png](/files/24251fabcb15c31ed766b45c1b8a4229c381378c)

### Koodin selitys

Koska `pgfplots` perustuu `tikziin` kuvaajan täytyy olla `tikzpicture` ympäristössä. Sitten ympäristön määrittely `\begin{axis}`, `\end{axis}` asettaa kuvaajalle oikean skaalaamisen — tarkista [Viiteopas](#reference-guide) muiden akseliympäristöjen osalta.

Varsinaisen kuvaajan lisäämiseksi komentoa `\addplot[color=red]{log(x)};` käytetään. Hakasulkeiden sisällä `[...]`, voidaan välittää joitakin valintoja; tässä asetamme `värin` kuvaajalle `punainen`. Hakasulkeet ovat pakolliset; jos valintoja ei välitetä, jätä niiden väliin tyhjä tila. Aaltosulkeiden sisään laitat piirrettävän funktion. On tärkeää muistaa, että tämän komennon on päätyttävä puolipisteeseen (;).

Jos haluat sijoittaa toisen kuvaajan ensimmäisen viereen, määritä uusi `tikzpicture` ympäristö. Älä lisää uutta riviä, vaan pieni tyhjä väli; tässä tapauksessa `\hskip 10pt` lisää 10 pt:n levyisen tyhjän välin.

Muu syntaksi on sama, paitsi `\addplot3 [surf,]{exp(-x^2-y^2)*x};`. Tämä lisää 3D-kuvaajan, ja valinta `surf` hakasulkeiden sisällä ilmoittaa, että kyseessä on pintakuvaaja. Piirrettävä funktio täytyy sijoittaa aaltosulkeiden sisään. Älä jälleen unohda puolipistettä (;) komennon lopussa.

**Huomaa**: On suositeltavaa hyvänä käytäntönä sisentää koodi — katso yllä olevan esimerkin toinen kuvaaja — ja lisätä pilkku (,) jokaisen välitetyn valinnan loppuun komennolle `\addplot`. Näin koodi on luettavampi ja on helpompi lisätä lisää valintoja tarvittaessa.

## 2D-kuvaajat

`pgfplots`2D-piirto-ominaisuudet ovat laajat — ja voit räätälöidä kuvaajasi tarpeidesi mukaan. Oletusvalinnat kuitenkin antavat yleensä erittäin hyviä tuloksia, joten sinun tarvitsee vain syöttää data, ja LaTeX hoitaa loput.

### Matemaattisten lausekkeiden piirtäminen

Tässä on esimerkki:

```latex
\begin{tikzpicture}
\begin{axis}[
    axis lines = left,
    xlabel = \(x\),
    ylabel = {\(f(x)\)},
]
% Alla punainen paraabeli on määritelty
\addplot [
    domain=-10:10,
    samples=100,
    color=red,
]
{x^2 - 2*x - 1};
\addlegendentry{\(x^2 - 2x - 1\)}
% Tässä sininen paraabeli on määritelty
\addplot [
    domain=-10:10,
    samples=100,
    color=blue,
    ]
    {x^2 + 2*x + 1};
\addlegendentry{\(x^2 + 2x + 1\)}

\end{axis}
\end{tikzpicture}
```

[Avaa tämä `pgfplots` esimerkki Overleafissa.](https://www.overleaf.com/docs?engine=\&snip_name=pgfplots+example+2\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bmargin%3D0.25in%5D%7Bgeometry%7D%0A%5Cusepackage%7Bpgfplots%7D%0A%5Cpgfplotsset%7Bwidth%3D10cm%2Ccompat%3D1.9%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%5Cbegin%7Baxis%7D%5B%0A++++axis+lines+%3D+left%2C%0A++++xlabel+%3D+%5C%28x%5C%29%2C%0A++++ylabel+%3D+%7B%5C%28f%28x%29%5C%29%7D%2C%0A%5D%0A%25Below+the+red+parabola+is+defined%0A%5Caddplot+%5B%0A++++domain%3D-10%3A10%2C+%0A++++samples%3D100%2C+%0A++++color%3Dred%2C%0A%5D%0A%7Bx%5E2+-+2%2Ax+-+1%7D%3B%0A%5Caddlegendentry%7B%5C%28x%5E2+-+2x+-+1%5C%29%7D%0A%25Here+the+blue+parabola+is+defined%0A%5Caddplot+%5B%0A++++domain%3D-10%3A10%2C+%0A++++samples%3D100%2C+%0A++++color%3Dblue%2C%0A++++%5D%0A++++%7Bx%5E2+%2B+2%2Ax+%2B+1%7D%3B%0A%5Caddlegendentry%7B%5C%28x%5E2+%2B+2x+%2B+1%5C%29%7D%0A%0A%5Cend%7Baxis%7D%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

Tämän koodin tulos näkyy alla olevassa kuvassa — LaTeX-asiakirjan johdanto-osa lisätään automaattisesti, kun avaat linkin:

![Plgplotsex2.png](/files/49d4ae859768f3255bb68c9baaed4699319f07c6)

#### Koodin selitys

Analysoidaan uudet komennot rivi riviltä:

**axis lines = left.**

Tämä asettaa akselit vain kuvaajan vasemmalle ja alareunalle oletuslaatikon sijasta. Lisää muokkausvaihtoehtoja viiteoppaassa.

**xlabel = (x) ja ylabel = {(f(x))}.**

Itseään selittävät parametrien nimet; niiden avulla voit lisätä nimikkeen vaaka- ja pystyakselille. Huomaa ylabel-arvo aaltosulkeiden sisällä; nämä sulkeet kertovat pgfplotsille, miten teksti ryhmitellään. Myös xlabelillä olisi voinut olla sulkeet. Tämä on hyödyllistä monimutkaisille nimikkeille, jotka saattavat hämmentää pgfplotsia.

**\addplot.**

Tämä lisää kuvaajan akseliin; yleiskäyttö kuvattiin johdannossa. Tässä esimerkissä on kaksi uutta parametria.

**domain=-10:10.**

Tämä määrittää x:n arvoalueen.

**samples=100.**

Määrittää pisteiden määrän domainilla määritellyllä välillä. Mitä suurempi samples-arvo, sitä terävämpi kuvaaja, mutta sen renderöinti kestää kauemmin.

**\addlegendentry{(x^2 - 2x - 1)}.**

Tämä lisää selitteen funktion x^2 - 2x - 1 tunnistamiseksi.

Lisätäksesi toisen kuvaajan piirrokseen kirjoita vain uusi `\addplot` merkintä.

### Piirtäminen datasta

Tieteellinen tutkimus tuottaa usein dataa, jota täytyy analysoida. Seuraava esimerkki näyttää, kuinka data piirretään *pgfplots*:

```latex
Piirtäminen datasta:

\begin{tikzpicture}
\begin{axis}[
    title={CuSO\(_4\cdot\)5H\(_2\)O:n liukoisuuden lämpötilariippuvuus},
    xlabel={Lämpötila [\textcelsius]},
    ylabel={Liukoisuus [g / 100 g vettä]},
    xmin=0, xmax=100,
    ymin=0, ymax=120,
    xtick={0,20,40,60,80,100},
    ytick={0,20,40,60,80,100,120},
    legend pos=north west,
    ymajorgrids=true,
    grid style=dashed,
]

\addplot[
    color=blue,
    mark=square,
    ]
    coordinates {
    (0,23.1)(10,27.5)(20,32)(30,37.8)(40,44.6)(60,61.8)(80,83.8)(100,114)
    };
    \legend{CuSO\(_4\cdot\)5H\(_2\)O}

\end{axis}
\end{tikzpicture}
```

[Avaa tämä `pgfplots` esimerkki Overleafissa.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=pgfplots+example+3\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bmargin%3D0.5in%5D%7Bgeometry%7D%0A%5Cusepackage%7Btextcomp%7D%0A%5Cusepackage%7Bpgfplots%7D%0A%5Cpgfplotsset%7Bwidth%3D10cm%2Ccompat%3D1.9%7D%0A%25%5Cusepgfplotslibrary%7Bexternal%7D%0A%25%5Ctikzexternalize%0A%5Cbegin%7Bdocument%7D%0APlotting+from+data%3A%0A%0A%5Cbegin%7Btikzpicture%7D%0A%5Cbegin%7Baxis%7D%5B%0A++++title%3D%7BTemperature+dependence+of+CuSO%5C%28_4%5Ccdot%5C%295H%5C%28_2%5C%29O+solubility%7D%2C%0A++++xlabel%3D%7BTemperature+%5B%5Ctextcelsius%5D%7D%2C%0A++++ylabel%3D%7BSolubility+%5Bg+per+100+g+water%5D%7D%2C%0A++++xmin%3D0%2C+xmax%3D100%2C%0A++++ymin%3D0%2C+ymax%3D120%2C%0A++++xtick%3D%7B0%2C20%2C40%2C60%2C80%2C100%7D%2C%0A++++ytick%3D%7B0%2C20%2C40%2C60%2C80%2C100%2C120%7D%2C%0A++++legend+pos%3Dnorth+west%2C%0A++++ymajorgrids%3Dtrue%2C%0A++++grid+style%3Ddashed%2C%0A%5D%0A%0A%5Caddplot%5B%0A++++color%3Dblue%2C%0A++++mark%3Dsquare%2C%0A++++%5D%0A++++coordinates+%7B%0A++++%280%2C23.1%29%2810%2C27.5%29%2820%2C32%29%2830%2C37.8%29%2840%2C44.6%29%2860%2C61.8%29%2880%2C83.8%29%28100%2C114%29%0A++++%7D%3B%0A++++%5Clegend%7BCuSO%5C%28_4%5Ccdot%5C%295H%5C%28_2%5C%29O%7D%0A++++%0A%5Cend%7Baxis%7D%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

Tämän koodin tulos näkyy alla olevassa kuvassa — LaTeX-asiakirjan johdanto-osa lisätään automaattisesti, kun avaat linkin:

![Plgplotsex3.png](/files/a7268e65c71c4ddf8be8847a15d390233a99d96b)

#### Koodin selitys

Tässä on joitakin uusia komentoja ja parametreja:

**title={CuSO(\_4\cdot)5H(\_2)O:n liukoisuuden lämpötilariippuvuus}.**

Kuten saatat odottaa, asettaa otsikon kuvaajalle. Otsikko näytetään kuvaajan yläpuolella.

**xmin=0, xmax=100, ymin=0, ymax=120.**

x- ja y-akselien minimi- ja maksimiarvot.

**xtick={0,20,40,60,80,100}, ytick={0,20,40,60,80,100,120}.**

Pisteet, joihin merkit sijoitetaan. Jos tyhjä, jaot asetetaan automaattisesti.

**legend pos=north west.**

Selitekehyksen sijainti. Tarkista viiteoppaasta lisää vaihtoehtoja.

**ymajorgrids=true.**

Tämä ottaa käyttöön tai poistaa käytöstä ruudukkoviivat y-akselin jaottelupisteissä. Käytä xmajorgrids-asetusta ottaaksesi ruudukkoviivat käyttöön x-akselilla.

**grid style=dashed.**

Itsestään selvä. Näyttää katkoviivaiset ruudukkoviivat.

**mark=square.**

Tämä piirtää neliömäisen merkin koordinattitaulukon jokaiseen pisteeseen. Jokainen merkki yhdistetään seuraavaan suoralla viivalla.

**coordinates {(0,23.1)(10,27.5)(20,32)...}**

Piirrettävien pisteiden koordinaatit. Tämä on data, jota haluat analysoida graafisesti.

Jos data on tiedostossa, mikä on useimmiten tilanne; komentojen `\addplot` ja `coordinates` sijasta sinun pitäisi käyttää `\addplot table {file_with_the_data.dat}`, muut tämän ympäristön valinnat ovat voimassa.

### Hajontakuviot

Hajontakuvioita käytetään tiedon esittämiseen jonkinlaisten merkkien avulla, ja niitä käytetään yleisesti tilastollista regressiota laskettaessa. Tässä esimerkissä luomme hajontakuvion käyttäen tiedostossa nimeltä `scattered_example.dat`, jossa data näyttää tältä:

```
GPA  ma  ve  co   un
3.45 643 589 3.76 3.52
2.78 558 512 2.87 2.91
2.52 583 503 2.54 2.4
3.67 685 602 3.83 3.47
3.24 592 538 3.29 3.47
2.1 562 486 2.64 2.37
...
```

Hajontakuviossamme käytetään datan kahta ensimmäistä saraketta:

```latex
\begin{tikzpicture}
\begin{axis}[
    enlargelimits=false,
]
\addplot+[
    only marks,
    scatter,
    mark=halfcircle*,
    mark size=2.9pt]
table[meta=ma]
{scattered_example.dat};
\end{axis}
\end{tikzpicture}
```

![Scattered.png](/files/91e0205f2bfd7c08767a7166557d90b6a44b624d)

[Avaa hajontakuvioprojektin esimerkki Overleafissä (sisältää datatiedoston `scattered_example.dat`).](https://www.overleaf.com/project/new/template/20099?id=68399290\&templateName=Scatter+plot+example\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

#### Koodin selitys

Komennolle välitetyt parametrit `axis` ja `addplot` ympäristöissä voidaan käyttää myös datakuvaajassa, paitsi `scatter`. Alla koodin kuvaus:

**enlarge limits=false**

Tämä supistaa akseleita niin, että maksimi- ja minimiarvoinen piste sijoittuvat kuvaajan reunaan.

**only marks**

Erittäin selvä, asettaa merkin jokaiseen pisteeseen.

**scatter**

Kun scatteria käytetään, pisteet värjätään arvon mukaan, ja väri annetaan alla selitetyllä meta-parametrilla.

**mark=halfcircle**\*

Kunkin pisteen merkityyppi; tarkista viiteoppaasta luettelo mahdollisista arvoista.

**mark size=2.9pt**

Kunkin merkin koko; eri yksiköitä voidaan käyttää.

**table\[meta=ma]{scattered\_example.dat};**

Tässä table-komento kertoo latexille, että piirrettävä data on tiedostossa. meta=ma-parametri välitetään valitsemaan sarake, joka määrittää kunkin pisteen värin. Aaltosulkeiden sisällä on datatiedoston nimi.

### Pylväsdiagrammit

Pylväsdiagrammeja (tunnetaan myös pylväskaavioina ja pylväskuvioina) käytetään kerätyn datan, pääasiassa jonkin väestöryhmän tilastollisen datan, esittämiseen. Pylväsdiagrammit `pgfplots` ovat hyvin muokattavissa, mutta tässä näytämme yksinkertaisen esimerkin:

```latex
\begin{tikzpicture}
\begin{axis}[
	x tick label style={
		\pgf/number format/1000 sep=},
	ylabel=Vuosi,
	enlargelimits=0.05,
	legend style={at={(0.5,-0.1)},
	anchor=north,legend columns=-1},
	ybar interval=0.7,
]
\addplot
	coordinates {(2012,408184) (2011,408348)
		 (2010,414870) (2009,412156)};
\addplot
	coordinates {(2012,388950) (2011,393007)
		(2010,398449) (2009,395972)};
\legend{Men,Women}
\end{axis}
\end{tikzpicture}
```

[Avaa tämä `pgfplots` pylväskoodi-esimerkki Overleafissä.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=pgfplots+bar+chart+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bmargin%3D0.5in%5D%7Bgeometry%7D%0A%5Cusepackage%7Btextcomp%7D%0A%5Cusepackage%7Bpgfplots%7D%0A%5Cpgfplotsset%7Bwidth%3D10cm%2Ccompat%3D1.9%7D%0A%25%5Cusepgfplotslibrary%7Bexternal%7D%0A%25%5Ctikzexternalize%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%5Cbegin%7Baxis%7D%5B%0A%09x+tick+label+style%3D%7B%0A%09%09%2Fpgf%2Fnumber+format%2F1000+sep%3D%7D%2C%0A%09ylabel%3DYear%2C%0A%09enlargelimits%3D0.05%2C%0A%09legend+style%3D%7Bat%3D%7B%280.5%2C-0.1%29%7D%2C%0A%09anchor%3Dnorth%2Clegend+columns%3D-1%7D%2C%0A%09ybar+interval%3D0.7%2C%0A%5D%0A%5Caddplot+%0A%09coordinates+%7B%282012%2C408184%29+%282011%2C408348%29%0A%09%09+%282010%2C414870%29+%282009%2C412156%29%7D%3B%0A%5Caddplot+%0A%09coordinates+%7B%282012%2C388950%29+%282011%2C393007%29+%0A%09%09%282010%2C398449%29+%282009%2C395972%29%7D%3B%0A%5Clegend%7BMen%2CWomen%7D%0A%5Cend%7Baxis%7D%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

Tämän koodin tulos näkyy alla olevassa kuvassa — LaTeX-asiakirjan johdanto-osa lisätään automaattisesti, kun avaat linkin:

![Barchartsexample.png](/files/a8474fe5b6696e9a464d87c0c860583453046739)

#### Koodin selitys

Kuvaaja alkaa ([aiemmin selitetyn](#introduction)) `tikzpicture` ja `axis` määrittelyn `axis` ympäristöille, mutta

**x tick label style={/pgf/number format/1000 sep=}**

Tämä koodinpätkä määrittää kuvaajalle täydellisen tyylin. Tällä tyylillä voit sisällyttää useita \addplot-komentoja tähän axis-ympäristöön; ne sopivat yhteen ja näyttävät hyvältä ilman lisäsäätöä (alla kuvattu ybar-parametri on pakollinen, jotta tämä toimii).

**enlargelimits=0.05.**

Raja-arvojen kasvattaminen pylväsdiagrammissa on tarpeen, koska tällaiset kuvaajat tarvitsevat usein hieman ylimääräistä tilaa pylvään yläpuolelle näyttääkseen paremmilta ja/tai lisätäkseen nimikkeen. Tällöin luku 0.05 on suhteessa kuvaajan kokonaiskorkeuteen.

**legend style={at={(0.5,-0.2)}, anchor=north,legend columns=-1}**

Jälleen tämä toimii useimmiten aivan hyvin. Tarvittaessa muuta arvoa -0.2 sijoittaaksesi selitteen lähemmäs x-akselia tai kauemmas siitä.

**ybar interval=0.7,**

Kunkin pylvään paksuus. 1 tarkoittaa, että pylväät ovat vierekkäin ilman välejä, ja 0 tarkoittaa, että pylväitä ei ole, vaan vain pystysuorat viivat.

Se `coordinates` tässäntyyppisessä kuvaajassa määrittävät pylvään peruspisteen ja sen korkeuden.

Y-akselin nimet näkyvät enintään 4 numeroon asti. Jos käyttämäsi luvut ovat suurempia kuin 9999 `pgfplots` käyttää samaa merkintätapaa kuin esimerkissä.

## 3D-kuvaajat

`pgfplots` sisältää sellaiset 3D-piirto-ominaisuudet, joita voit odottaa piirto-ohjelmistolta.

### Matemaattisten lausekkeiden piirtäminen

Tästä löytyy yksinkertainen esimerkki [johdannossa](#introduction), työskennelläänpä hieman monimutkaisemman asian parissa:

```latex
\begin{tikzpicture}
\begin{axis}[
    title=Esimerkki mesh-parametrin käytöstä,
    piilota akselit,
    colormap/cool,
]
\addplot3[
    mesh,
    samples=50,
    domain=-8:8,
]
{sin(deg(sqrt(x^2+y^2)))/sqrt(x^2+y^2)};
\addlegendentry{\(\frac{sin(r)}{r}\)}
\end{axis}
\end{tikzpicture}
```

[Avaa tämä `pgfplots` 3D-esimerkki Overleafissä.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=pgfplots+3D+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bmargin%3D0.5in%5D%7Bgeometry%7D%0A%5Cusepackage%7Bpgfplots%7D%0A%5Cpgfplotsset%7Bwidth%3D10cm%2Ccompat%3D1.9%7D%0A%25%5Cusepgfplotslibrary%7Bexternal%7D%0A%25%5Ctikzexternalize%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%5Cbegin%7Baxis%7D%5B%0A++++title%3DExample+using+the+mesh+parameter%2C%0A++++hide+axis%2C%0A++++colormap%2Fcool%2C%0A%5D%0A%5Caddplot3%5B%0A++++mesh%2C%0A++++samples%3D50%2C%0A++++domain%3D-8%3A8%2C%0A%5D%0A%7Bsin%28deg%28sqrt%28x%5E2%2By%5E2%29%29%29%2Fsqrt%28x%5E2%2By%5E2%29%7D%3B%0A%5Caddlegendentry%7B%5C%28%5Cfrac%7Bsin%28r%29%7D%7Br%7D%5C%29%7D%0A%5Cend%7Baxis%7D%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

Tämän koodin tulos näkyy alla olevassa kuvassa — LaTeX-asiakirjan johdanto-osa lisätään automaattisesti, kun avaat linkin:

![Pgfplots3dexample.png](/files/76a9812105f329bd5e7d91550562a3d2f907334f)

#### Koodin selitys

Useimmat tässä olevat komennot on jo selitetty, mutta on kolme uutta asiaa:

**piilota akselit**

Tämä valinta axis-ympäristössä on itsestään selvä, akseleita ei näytetä.

**colormap/cool**

On kuvaajassa käytettävä väriskaala. Tarkista viiteoppaasta lisää väriskaaloja.

**mesh**

Tämäkin valinta on itsestään selvä; katso myös surf-parametri johdantoesimerkissä.

**Huomaa**: Kun työskennellään trigonometristen funktioiden kanssa `pgfplots` käyttää oletusyksikkönä asteita; jos kulma on radiaaneina (kuten tässä esimerkissä) sinun täytyy käyttää `deg` funktiota muuntaaksesi asteiksi.

### Ääriviivakuvaajat

On `pgfplots` mahdollista piirtää ääriviivakuvaajia, mutta data täytyy esilaskennan olla ulkoisen ohjelman tekemää. Katsotaan esimerkki:

```latex
\begin{tikzpicture}
\begin{axis}
[
    title={Ääriviivakuvaaja, näkymä ylhäältä},
    view={0}{90}
]
\addplot3[
    contour gnuplot={levels={0.8, 0.4, 0.2, -0.2}}
]
{sin(deg(sqrt(x^2+y^2)))/sqrt(x^2+y^2)};
\end{axis}
\end{tikzpicture}
```

[Avaa tämä `pgfplots` ääriviivakuvaajaesimerkki Overleafissä.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=pgfplots+contour+plot+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bmargin%3D0.5in%5D%7Bgeometry%7D%0A%5Cusepackage%7Bpgfplots%7D%0A%5Cpgfplotsset%7Bwidth%3D10cm%2Ccompat%3D1.9%7D%0A%25%5Cusepgfplotslibrary%7Bexternal%7D%0A%25%5Ctikzexternalize%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%5Cbegin%7Baxis%7D%0A%5B%0A++++title%3D%7BContour+plot%2C+view+from+top%7D%2C%0A++++view%3D%7B0%7D%7B90%7D%0A%5D%0A%5Caddplot3%5B%0A++++contour+gnuplot%3D%7Blevels%3D%7B0.8%2C+0.4%2C+0.2%2C+-0.2%7D%7D%0A%5D%0A%7Bsin%28deg%28sqrt%28x%5E2%2By%5E2%29%29%29%2Fsqrt%28x%5E2%2By%5E2%29%7D%3B%0A%5Cend%7Baxis%7D%0A%5Cend%7Btikzpicture%7D%0A%0A%5Cend%7Bdocument%7D)

Tämän koodin tulos näkyy alla olevassa kuvassa — LaTeX-asiakirjan johdanto-osa lisätään automaattisesti, kun avaat linkin:

![Contourplotexample.png](/files/274f4cbc71ef5a2a3be740e22799015afe8c316f)

#### Koodin selitys

Tämä on kuvaaja joistakin ääriviivoista samalle yhtälölle, jota käytettiin edellisessä osiossa. Parametrin arvo on aaltosulkeiden sisällä, koska se sisältää pilkun, joten käytämme ryhmittelysulkeita välttääksemme sekaannusta muiden komennolle välitettyjen parametrien kanssa `otsikko` määrittelyssä. Tässä on kaksi uutta komentoa: `\begin{axis}` Tämä muuttaa kuvaajan näkymää. Parametri välitetään axis-ympäristölle, mikä tarkoittaa, että tätä voidaan käyttää minkä tahansa muun tyyppisessä 3D-kuvaajassa. Ensimmäinen arvo on kierto asteina z-akselin ympäri; toinen arvo kiertää näkymää x-akselin ympäri. Tässä esimerkissä, kun yhdistämme 0° kierron z-akselin ympäri ja 90° kierron x-akselin ympäri, päädymme kuvaajan ylhäältä nähtävään näkymään.

**view={0}{90}**

Tämä koodirivi tekee kaksi asiaa: ensin se kertoo LaTeXille, että se käyttää ulkoista gnuplot-ohjelmistoa ääriviivojen laskemiseen; tämä toimii hyvin Overleafissä, mutta jos haluat käyttää tätä komentoa omassa paikallisessa LaTeX-asennuksessasi, sinun on ensin asennettava gnuplot (matlab toimii myös; siinä tapauksessa kirjoita komennossa gnuplotin sijasta matlab). Toiseksi aliparametri levels on luettelo korkeustasoista, joilla ääriviivat lasketaan.

**contour gnuplot={levels={0.8, 0.4, 0.2, -0.2}}**

Plotataan pinta datasta

### Jos haluamme piirtää joukon dataa 3D-pinnalle, tarvitsemme vain jokaisen pisteen koordinaatit. Nämä koordinaatit voivat olla järjestämätön joukko tai tässä tapauksessa matriisi:

3D-pintaesimerkki Overleafissä.

```latex
\begin{tikzpicture}
\begin{axis}
\addplot3[
    surf,
]
coordinates {
(0,0,0) (0,1,0) (0,2,0)

(1,0,0) (1,1,0.6) (1,2,0.7)

(2,0,0) (2,1,0.7) (2,2,1.8)
};
\end{axis}
\end{tikzpicture}
```

[Avaa tämä `pgfplots` 3dsurfacedata.png](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=plotting+a+surface+from+data+with+pgfplots\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bmargin%3D0.5in%5D%7Bgeometry%7D%0A%5Cusepackage%7Bpgfplots%7D%0A%5Cpgfplotsset%7Bwidth%3D10cm%2Ccompat%3D1.9%7D%0A%25%5Cusepgfplotslibrary%7Bexternal%7D%0A%25%5Ctikzexternalize%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%5Cbegin%7Baxis%7D%0A%5Caddplot3%5B%0A++++surf%2C%0A%5D+%0Acoordinates+%7B%0A%280%2C0%2C0%29+%280%2C1%2C0%29+%280%2C2%2C0%29%0A%0A%281%2C0%2C0%29+%281%2C1%2C0.6%29+%281%2C2%2C0.7%29%0A%0A%282%2C0%2C0%29+%282%2C1%2C0.7%29+%282%2C2%2C1.8%29%0A%7D%3B%0A%5Cend%7Baxis%7D%0A%5Cend%7Btikzpicture%7D%0A%0A%5Cend%7Bdocument%7D)

Tämän koodin tulos näkyy alla olevassa kuvassa — LaTeX-asiakirjan johdanto-osa lisätään automaattisesti, kun avaat linkin:

![Datan selitys](/files/a440a1e18a1031a1b8b5f163d396cf18a694d437)

#### Komennolle välitetyt pisteet

parametri `coordinates` käsitellään 3 × 3 -matriisissa olevina, ja jokaisen matriisirivin erotin on tyhjä rivi.

Kaikki tämän artikkelin 3D-kuvaajien valinnat pätevät myös datapinnoille.

### Parametrinen kuvaaja

Parametristen kuvaajien syntaksi on hieman erilainen. Katsotaan esimerkki:

```latex
\begin{tikzpicture}
\begin{axis}
    [
    view={60}{30},
    ]
\addplot3[
    domain=0:5*pi,
    samples = 60,
    samples y=0,
]
({sin(deg(x))},
{cos(deg(x))},
{x});
\end{axis}
\end{tikzpicture}
```

[Avaa tämä `pgfplots` parametrisen kuvaajan esimerkki Overleafissä.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=pgfplots+parametric+plot+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bmargin%3D0.5in%5D%7Bgeometry%7D%0A%5Cusepackage%7Bpgfplots%7D%0A%5Cpgfplotsset%7Bwidth%3D10cm%2Ccompat%3D1.9%7D%0A%25%5Cusepgfplotslibrary%7Bexternal%7D%0A%25%5Ctikzexternalize%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%5Cbegin%7Baxis%7D%0A++++%5B%0A++++view%3D%7B60%7D%7B30%7D%2C%0A++++%5D%0A%5Caddplot3%5B%0A++++domain%3D0%3A5%2Api%2C%0A++++samples+%3D+60%2C%0A++++samples+y%3D0%2C%0A%5D%0A%28%7Bsin%28deg%28x%29%29%7D%2C%0A%7Bcos%28deg%28x%29%29%7D%2C%0A%7Bx%7D%29%3B%0A%5Cend%7Baxis%7D%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

Tämän koodin tulos näkyy alla olevassa kuvassa — LaTeX-asiakirjan johdanto-osa lisätään automaattisesti, kun avaat linkin:

![Parametricplot.png](/files/150f497172f3f9c31842f162c4b1436c5f448abf)

#### Koodin selitys

Tässä esimerkissä on vain kaksi uutta asiaa: ensin `samples y=0` estämään `pgfplots` siitä, että spiraalin ääriarvopisteet yhdistyvät; ja toiseksi tapa, jolla piirrettävä funktio välitetään `addplot3` ympäristöön. Jokainen parametrifunktio ryhmitellään aaltosulkeiden sisään, ja kolme parametria erotetaan sulkeilla.

## Viiteopas

| Komento/valinta/ympäristö | Kuvaus                                                                                                                                     | Mahdolliset arvot                                                                                                                                                                                                                                                                                                   |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **axis**                  | Tavalliset kuvaajat lineaarisella skaalauksella                                                                                            |                                                                                                                                                                                                                                                                                                                     |
| **semilogxaxis**          | x:n logaritminen skaalaus ja y:n normaali skaalaus                                                                                         |                                                                                                                                                                                                                                                                                                                     |
| **semilogyaxis**          | y:n logaritminen skaalaus ja x:n normaali skaalaus                                                                                         |                                                                                                                                                                                                                                                                                                                     |
| **loglogaxis**            | x- ja y-akselien logaritminen skaalaus                                                                                                     |                                                                                                                                                                                                                                                                                                                     |
| **axis lines**            | muuttaa tapaa, jolla akselit piirretään. oletus on '*laatikko*                                                                             | box, left, middle, center, right, none                                                                                                                                                                                                                                                                              |
| **legend pos**            | selitekehyksen sijainti                                                                                                                    | south west, south east, north west, north east, outer north east                                                                                                                                                                                                                                                    |
| **mark**                  | datan piirtämisessä käytettävien merkkien tyyppi. Kun käytetään yhtä merkkiä, merkin ulkoasu on hyvin samanlainen kuin varsinainen merkki. | \*, x , +, \|, o, asterisk, star, 10-pointed star, oplus, oplus\*, otimes, otimes\*, square, square\*, triangle, triangle\*, diamond, halfdiamond\*, halfsquare\*, right\*, left\*, Mercedes star, Mercedes star flipped, halfcircle, halfcircle\*, pentagon, pentagon\*, cubes. (cubes toimii vain 3D-kuvaajissa). |
| **colormap**              | kuvaajassa käytettävä väriskaala, voidaan räätälöidä, mutta on olemassa joitakin ennalta määritettyjä värikarttoja                         | hot, hot2, jet, blackwhite, bluered, cool, greenyellow, redyellow, violet.                                                                                                                                                                                                                                          |

## Lisälukemista

Lisätietoja löydät:

* [Värien käyttäminen LaTeXissa](/latex/fi/muotoilu/13-using-colors-in-latex.md)
* [TikZ-paketti](/latex/fi/kuvat-ja-taulukot/05-tikz-package.md)
* [pgfplotsien ja tikz-kuvien ulkopuolistaminen](/latex/fi/kysymykset-ja-vastaukset/60-i-have-a-lot-of-tikz-matlab2tikz-or-pgfplots-figures-so-i-m-getting-a-compilation-timeout.-can-i.md)
* [Kuvien lisääminen](/latex/fi/lisaa-aiheita/27-inserting-images.md)
* [Taulukkojen ja kuvioiden luettelot](/latex/fi/kuvat-ja-taulukot/03-lists-of-tables-and-figures.md)
* [Kuvien ja taulukoiden sijoittelu](/latex/fi/kuvat-ja-taulukot/02-positioning-images-and-tables.md)
* [Kaavioiden piirtäminen suoraan LaTeXissä](/latex/fi/kuvat-ja-taulukot/04-picture-environment.md)
* [Se **pgfplots** pakettidokumentaatio](http://mirrors.ctan.org/graphics/pgf/contrib/pgfplots/doc/pgfplots.pdf).
* [TikZ- ja PGF-paketit: käsikirja versiolle 3.0.0](http://mirror.utexas.edu/ctan/graphics/pgf/base/doc/pgfmanual.pdf)
* [TikZ- ja PGF-esimerkkejä TeXample.netissä](http://www.texample.net/tikz/examples/all/)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/fi/alakohtaiset/08-pgfplots-package.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
