Kako ustvariti histogram s programsko kodo C
![](/article/uploadfiles/202210/2022102121214868.jpg)
Histograme običajno najdemo kot možnost grafikona pri analizi podatkov v programski opremi za preglednice in v programski opremi za urejanje slik za prikaz porazdelitve tonov od črne do bele na sliki. V programskem jeziku C uporaba matrike za shranjevanje števila frekvenc poenostavi ustvarjanje histograma vašega niza podatkov. Medtem ko nizi podatkov, ki se uporabljajo za ustvarjanje histogramov, običajno vsebujejo celoštevilske vrednosti, je mogoče znake in celo nize prešteti in prikazati v grafih.
1. korak
Napolnite matriko celih števil, imenovano "values", s svojim naborom podatkov in nastavite spremenljivko "numvalues" na število vrednosti v vašem naboru podatkov. Ti so lahko naključno ustvarjeni, prebrani iz datoteke ali interaktivno zbrani od uporabnika. Ta primer inicializira te spremenljivke, ko so deklarirane:
int numvalues =20; int vrednosti [število vrednosti] ={ -3, 2, -2, 4, 5, 4, 2, 5, 4, 5, -1, 2, 3, 4, 7, 4, 2, 0, 7, -3 };
2. korak
Nastavite dve celoštevilski spremenljivki (i in j), ki ju želite uporabiti kot iteratorja:
int i =0, j =0;
3. korak
Preglejte svoje podatke -- matriko vrednosti -- in nastavite spremenljivko "maxval" na največjo vrednost vaših podatkov:
int maxval =0; for (i=0; i
4. korak
Pojdite skozi svoje podatke in nastavite spremenljivko "minval" na največjo vrednost vaših podatkov:
int minval =maxval; for (i=0; i
Navedite spremenljivko "freqsize", ki bo zadržala velikost vašega frekvenčnega niza:
int freqsize =maxval - minval + 1;
Deklarirajte matriko, ki bo hranila štetja frekvenc in inicializirala vsak element matrike na nič:
int frekvenca[freqsize]; for (i=0; i
Za vsako možno vrednost v vašem naboru podatkov obstaja en element polja.
Pojdite skozi vsako vrednost v svojem naboru podatkov in dodajte eno elementu niza frekvenc, ki ustreza tej vrednosti:
for (i =0; i
Indeks, ki ustreza trenutni vrednosti, se ustvari s premikom vrednosti za najmanjšo vrednost.
Stopite skozi vsak element v frekvenčnem nizu. Natisnite trenutno vrednost (izračunano s premikom iteratorja "i" za najmanjšo vrednost). Natisnite število zvezdic (*), ki ustrezajo frekvenci in trenutni vrednosti, tako da se premaknete od ena do vrednosti, shranjene v nizu frekvenc, in vsakič natisnete eno zvezdico:
for (i=1; i<=freqsize; i++) { printf("%2d\t|", i + minval); for(j=0; j 5. korak
6. korak
7. korak
8. korak