# Vanliga uppgifter

Det här kapitlet innehåller instruktioner för att utföra grundläggande uppgifter med &kst;. Det går igenom metoden för att utföra varje uppgift på enklaste sätt. Länkar till avsnitten i handboken med mer djupgående information ges också.

## Rita upp enkla diagram

Det första du vill göra med &kst; är troligen att rita upp ett enkelt diagram. Här är proceduren:

1. Välj en datafil. &kst; läser många typer av datafiler, där den enklaste är en vanlig textfil (ASCII) med data i kolumner. Vi skapar en enkel datafil för handledningen. Kopiera och klistra in denna enkla 10-raders datauppsättning i en textfil, och spara den som `simple.dat`:

       x  y
       -5 6.25
       -4 4
       -3 2.25
       -2 1
       -1 0.25
       0 0
       1 0.25
       2 1
       3 2.25
       4 4
       5 6.25

   ASCII är bara en av de många filtyper som &kst; klarar av att läsa. För ytterligare information om filtyper, se avsnittet om datakällor.

2. Öppna &kst;. Om dialogrutan Snabbstart visas, klicka på knappen Dataguide. Om dialogrutan Snabbstart inte visas kan du klicka på knappen i verktygsraden för att öppna dataguiden. I guiden som visas kan du skriva in sökvägen till filen simple.dat för hand, eller välja den med ikonen Öppna fil filöppningsikon som finns intill textrutan för inmatning av sökvägen. Vi har lagt till X- och Y-rubriker på första raden i vår datafil, så klicka på Anpassa... och ställ in datakällan som visas nedan.

   Rita upp enkla diagram - Anpassa ASCII

3. Nästa sida används för att välja vilken data som ska användas. Om du har ställt in ASCII-datakällan riktigt, har fältnamnen lästs från datafilens första rad, och x och y finns i listan Tillgängliga till vänster på sidan. Flytta fältet y till listan Valda med pilknapparna i fönstrets mitt. Fältet INDEX är ett särskilt fält som skapas av &kst;, som kan användas som data för en x-axel när användaren inte anger en datavektor för x-axeln.

4. Genom att klicka på knappen Nästa igen får du möjlighet att välja alternativ för datapresentation. Lämna förvald X-Y som det är under Diagramtyper, men ändra X-axelvektor till Skapa från fält: x.

5. På nästa sida, 'Diagramlayout', ändrar vi bara en sak: välj Bara punkter under Kurvans stil för att bara rita datapunkter, och inte linjer som binder samman dem.

6. Klicka på Slutför, och du är klar! Det nya diagrammet visas i &kst;s huvudfönster.

   Rita upp enkla diagram

Det är också möjligt att snabbt skapa diagram från kommandoraden med &kst;, på liknande sätt som med Gnuplot. I fallet med filen `simple.dat` kan vi skapa ett enkelt diagram som använder den första kolumnen (eller fältet) i filen som x-vektor, och den andra kolumnen som y-vektor, genom att skriva in följande på kommandoraden:

``kst -x 1 -y 2 simple.dat``

Många andra kommandoradsväljare är tillgängliga: genom att enbart använda kommandoraden kan datadiagram skrivas ut direkt i filer, och enkel databehandling som att skapa effektspektrum kan också utföras. För en fullständig lista över kommandoradsväljare, se Användning av kommandorad och exempel.

## Anpassning av diagraminställningar

Antag att du vill ändra standardtexterna för X och Y, samt lägga till en rubrik i den föregående kurvans diagram.

Högerklicka först var som helst i diagrammet för att ändra diagrammets standardinställningar, så visas följande sammanhangsberoende meny.

Sammanhangsberoende meny
Sammanhangsberoende meny

Välj Redigera... så visas dialogrutan Redigera diagram.

Klicka på fliken Utseende för att lägga till eller ändra X- och Y-text och diagrammets rubrik.

Utseende
Utseende

Skriv in X- och Y-axlarnas texter du vill ha i textrutan intill X-axel och Y-axel. I detta fall, Avstånd (m) och Tid (s).

Skriv in diagrammets rubrik i textrutan intill Rubrik:. I detta fall: Avstånd mot tid. Dessutom kan du välja rubrikens position genom att ange Vänster, Höger eller Centrerad i textrutan Justering.

Klicka på fliken X-axel eller Y-axel för att ändra X- eller Y-axelns inställningar, som att välja skala på X- eller Y-axeln eller lägga till rutlinjer.

X- och Y-axel
X- och Y-axel

Ändra X-axelns små streck till att vara 1, och välj att visa båda små och stora rutlinjer för X-axeln.

För Y-axeln, som inte visas på någon skärmbild, välj Omvänd för skalan, ändra Y-axelns små streck till att vara 1, och välj att bara visa stora rutlinjer.

Använd fliken Intervall för att ändra X- eller Y-axelns intervall.

Intervall
Intervall

Ändra x-axelns intervall att vara Från 0 Till 8.

Till sist kan du markera en viktig del av diagrammet genom att använda fliken Markör.

Markör
Markör

Om till exempel tid = 4 s är viktigt i detta fall, skriv in 4 i textrutan Ny och klicka på knappen Lägg till. En markörlinje visas vid tid = 4. Markörlinjen kan anpassas under Utseende. I exemplet välj blått som linjefärg, typ bruten linje och vikt 5.

Det anpassade diagrammet ser ut så här:

Diagram
Diagram

## Anpassa en kurva

&kst; tillhandahåller också funktioner för många olika typer av kurvanpassning: linjär, kvadratisk, sinusformad, med mera. Som ett exempel gör vi en enkel polynomanpassning till kurvan vi tidigare ritade upp i avsnittet Rita upp enkla diagram.

1. Högerklicka på diagrammet som du har skapat och välj y i undermenyn Anpassa i den sammanhangsberoende menyn som visas.

   Anpassa en kurva - Den sammanhangsberoende menyn Anpassa

2. Nu visas dialogrutan Nytt insticksprogram som låter dig ställa in anpassningen. Eftersom data i exemplet är kvadratisk, använder vi insticksprogrammet Polynomanpassning. Välj det i kombinationsrutan för val av insticksprogram. Det råkar vara så att polynomets Ordning normalt är inställd till 2, vilket är vad vi vill ha. Du kan ställa in Ordning till vilket heltal som helst, en av de fördefinierade skalära värdena, eller något statistiskt värde baserat på en av de tillgängliga vektorerna (till exempel standardavvikelsen hos x, [x/Sigma]).

   Det finns flera utdatafält där du kan skriva in text att använda som unika namn för vektorerna och skalärerna som skapas av anpassningen. Läs avsnittet om Anpassa polynom i kapitlet Insticksprogram, för mer information.

3. Klicka på Ok för att utföra anpassningen. En ny kurva som visar polynomet som är bäst anpassat läggs automatiskt till i diagrammet som innehåller den ursprungliga kurvan. Ett nytt textvärde läggs också till i diagrammet som innehåller de anpassade koefficienterna för x^2, x^1 och x^0 (konstanten).

   Anpassa en kurva - Uppritad kurva

Alla anpassningens resultat visas inte i det nya textvärdet. Kovariansen för anpassningskoefficienterna, samt anpassningens χ² värde hittas i dialogrutan Visa anpassningsresultat. Välj Data Visa anpassningsresultat i huvudmenyn, och välj anpassningen som du är intresserad av i kombinationsrutan. Resultaten visas i en tabell:

Anpassa en kurva - Anpassningsresultat

## Skapa ett histogram

&kst; innehåller inbyggda rutiner för att skapa histogram från data. I handledningen tittar vi på histogrammet för en vektor som innehåller normalfördelade tal.

Vi skapar vektorn med ett perl-skript. Kopiera följande kod till en fil som heter skapa_normal.pl:

    sub gaussian_rand { # från Perl Cookbook. (O'Reilly, 1998)
        my ($u1, $u2);  # likformigt distribuerade slumptal
        my $w;          # varians, därefter viktade
        my ($g1, $g2);  # Gauss-distribuerade tal

        do {
            $u1 = 2 * rand() - 1;
            $u2 = 2 * rand() - 1;
            $w = $u1*$u1 + $u2*$u2;
        } while ( $w
    >= 1 );

        $w = sqrt( (-2 * log($w))  / $w );
        $g2 = $u1 * $w;
        $g1 = $u2 * $w;
        # returnera båda om det önskas, annars bara en
        return wantarray ? ($g1, $g2) : $g1;
    }

    srand(time() ^($$ + ($$ <<15))) ; # initiera RNG.
    for ($x=0;$x < 10000;$x++) {
            print gaussian_rand() . "\n";
    }

Kör nu skriptet med kommandot:

``perl skapa_normal.pl > normal.dat``

Det skapar ASCII-filen `normal.dat` som innehåller normalfördelade slumptal med en Gaussfördelning centrerad omkring 0 med standardavvikelsen 1. Importera data i &kst; och rita upp det som punkter med INDEX som X-axelverktor (om du får problem med det, kan du titta i avsnittet Komma igång under Importera Data. Du ska se något som liknar följande:

Skapa histogram - Spridningsdiagram
Skapa histogram - Spridningsdiagram

Nu är vi redo att skapa själva histogrammet. Välj Data Nytt histogram.... Välj datavektorn som just har skapats från `normal.dat`. Det finns flera alternativ som har med områden att göra. För att snabbt skapa histogrammet är det oftast enklast att bara klicka på funktionen "Automatiska områden". Det väljer optimal områdesstorlek och intervall för given data.

Klicka på Ok för att skapa histogrammet.

Skapa histogram - Histogram
Skapa histogram - Histogram

## Skapa händelsebevakning

&kst; har många funktioner som är avsedda för realtidsdata. En av de mest användbara av dessa funktioner är dataobjektet "Händelsebevakning". En händelsebevakning kontrollerar villkor för datavektorer. En vanlig användning av dem är att tillhandahålla varningar om ovanliga tillstånd i data som anländer. De kan tillhandahålla återmatning på ett antal olika sätt:

- Meddelanden i &kst;s felsökningslogg.

- Automatiska poster i en Elektronisk loggbok (ELOG).

- Underrättelse via e-post.

I handledningen skapar vi en händelsebevakning som tillhandahåller underrättelser i felsökningsloggen om statistiskt sällsynta toppar i dataströmmen. Du hittar mer information om dataobjekt för händelsebevakning här.

Först behöver vi ett skript för att skapa lite simulerad realtidsdata. Kopiera följande till en fil som heter `simrealtid.pl`.

    #!/usr/bin/perl

    open(OUTPUT, "
    >$ARGV[0]") || die "Kan inte öppna $ARGV[0]: $!";

    srand(1); # initiera RNG (dåligt).

    for ($x=0;;$x++) {
            open(OUTPUT, "
    >
    >$ARGV[0]") || die "Kan inte öppna $ARGV[0]: $!";
            $rn = rand();
            if ($rn
    > .99) {
                    $rn = $rn + 5;
            } else {
                    $rn = $rn - .5;
            }
            print OUTPUT $rn . "\n";
            close(OUTPUT);
            print "Skapade " . $x . " poster. Tryck på returtangenten för att fortsätta...";
            $dummy=<STDIN>
    }

Perl-skriptet skapar slumpmässig data, likformigt fördelat i intervallet [-0.5, 0.5], med sporadiska toppar. Gör skriptet körbart och kör det med följande kommandon:

``chmod a+x simrealtid.pl``

``./simrealtid.pl simulerat.dat``

För att simulera realtidsdata, skapar inte skriptet all utdata på en gång, utan frågar användaren innan varje post matas ut. Tryck på returtangenten flera gånger för att påbörja datamängden. Använd nu en separat terminal för att tala om för &kst; att rita upp ett diagram, med kommandot:

``kst -y 1 simulerat.dat``

Beroende på antal datapunker som du har skapat hittills, ska diagrammet likna det nedan, möjligtvis utan den stora toppen i mitten.

Skapa händelsebevakning - Ursprungligt diagram
Skapa händelsebevakning - Ursprungligt diagram

Gå nu tillbaka till terminalen där skriptet `simrealtid.pl` kör, och tryck några gånger till på returtangenten. Du bör se att diagrammet du har skapat i &kst; automatiskt uppdateras när ny data läggs till i strömmen `simulerat.dat`.

Antag att vi vill ta emot en underrättelse varje gång en stor topp inträffar i den inkommande dataströmmen. Det kan göras med händelsebevakning. Välj menyalternativet Data Ny händelsebevakning och ställ in händelsebevakningens inställningar som visas nedan.

Skapa händelsebevakning - Ny händelsebevakning
Skapa händelsebevakning - Ny händelsebevakning

Inställningarna i textrutan Uttryck ställer in händelsebevakningen att rapportera poster i Vektor 1 som är mer än 5 standardavvikelser från dess medelvärde. Det är en ganska enkel händelsebevakning. Mycket kraftfullare händelsebevakningar kan skapas med den stora uppsättning skalärer som &kst; hanterar, och de många operatorerna som kan göra jämförelser mellan vektorer.

Nu får vi våra händelser loggade som Varning i &kst;s felsökningslogg. Som du ser, finns det flera andra möjliga sätt att rapportera händelser. De förklaras mer detaljerat i dokumentationen om händelsebevakning.

Klicka på knappen Ok för att skapa den nya händelsebevakningen. Titta nu i &kst;s Felsökningslogg genom att välja menyalternativet Hjälp Felsökning av Kst... och klicka på fliken Logg. Du kan ser att en topp har detekterats. Om inte, återgå till terminalen där `simrealtid.pl` körs och fortsätt skapa ny data till ett antal toppar är synliga i diagrammet. Omkring 1 % av data ska vara toppar. Toppar som inträffar i början av dataströmmen kanske inte detekteras, eftersom &kst; inte ännu hade tillräckligt med data för att upprätta en tillförlitlig uppskattning av standardavvikelsen för Vektor 1. Efter några hundra datapunkter har skapats, kanske loggen ser ut ungefär så här:

Skapa händelsebevakning - Felsökningslogg
Skapa händelsebevakning - Felsökningslogg

När väl händelsebevakningen är igång, är det ibland användbart att låta &kst; ange i diagrammet när en händelse har inträffat. Det görs bäst med objekt som kallas diagrammarkörer. För att skapa diagrammarkörer vid händelser, måste vi skapa kurvdataobjektet för händelserna i fråga. Skapa ett kurvdataobjekt nu genom att välja Data Ny kurva... och ställ in den nya kurvan med alternativen som visas nedan.

Skapa händelsebevakning - Ny kurva
Skapa händelsebevakning - Ny kurva

Nu är vi klara att skapa diagrammarkörer. Högerklicka på diagrammet och välj Redigera... i den sammanhangsberoende menyn som visas. Välj därefter fliken Markörer och ställ in den att använda vår bevakningskurva som visas nedan.

Skapa händelsebevakning - Inställning av markör
Skapa händelsebevakning - Inställning av markör

Klicka på knappen Ok för att skapa markören. Vertikala linjer visas nu i diagrammet, som anger topparnas positioner. Det användbara med diagrammarkörer är att de alltid sträcks ut längs hela Y-axeln, oberoende av zoomnivå, som visas på skärmbilden nedan.

Markör
Markör

## Skapa ett effektspektrum

&kst; innehåller inbyggda rutiner för att skapa effektspektrum av data. Följande exempel visar hur ett effektspektrum skapas.

Rita först upp den normalfördelade datavektorn skapad av Perl-skriptet generate_normal.pl från histogramhandledningen. Diagrammet av normalfördelad data visas nedan:

Vektordiagram
Vektordiagram

Välj Data Nytt spektrum... för att skapa ett effektspektrum av datavektorn.

Välj nytt spektrum
Välj nytt spektrum

Då visas dialogrutan för att skapa ett nytt spektrum:

Dialogrutan för att skapa effektspektrum
Dialogrutan för att skapa effektspektrum

Välj vektorn som du vill skapa effektspektrum av i textrutan intill Datavektor:. Index är förvalt, men du kan ändra det genom att välja i kombinationsrutans meny. Du kan ändra spektrats namn i textrutan Unikt namn. FFT-alternativ får en detaljerad förklaring i avsnittet om spektrum i datakapitlet. Använd bara det förvalda värdet för FFT-alternativ för att ta en snabb titt på resultatet, och klicka på Ok. Följande effektspektrum skapas:

Spektrumdiagram
Spektrumdiagram