[Java] Histogram maken uit integer array

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • monnick
  • Registratie: December 2005
  • Niet online
Voor een project waar ik mee bezig ben zou ik een histogram afbeelding willen maken en opslaan als bijvoorbeeld een PNG bestand. Het project is een plugin voor de beeldverwerkingssoftware ImageJ. De data die ik als histogram wil tonen bestaat uit een grote lijst (array) van integers die de grootte van gistcellen representeert. Uit de histogram wil ik kunnen aflezen hoe de grootte van de cellen verdeeld is.

Iemand enig idee hoe ik dit kan realiseren? Ik heb al flink wat rondgezocht, maar nog niks bruikbaars kunnen vinden. Alle tips zijn welkom! :)

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59

https://niels.nu


Acties:
  • 0 Henk 'm!

  • _Squatt_
  • Registratie: Oktober 2000
  • Niet online
Als ik zoek op 'making histogram in java' krijg ik een hele lijst met results, wat is er precies niet bruikbaar aan? Waar loop je vast?

Ook lijkt of het (maar ik kan verkeerd zitten) of het je niet direct gaat om het maken, maar eerder om het resultaat. Waarom de data niet gewoon in een statistisch programma zetten en daar een histogram mee maken? Ik gebruik zelf altijd R (www.r-project.org), maar ook Excel of Libreoffice Calc moet wel een histogram kunnen maken lijkt me.

"He took a duck in the face at two hundred and fifty knots."


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 22:14

Janoz

Moderator Devschuur®

!litemod

Begin eerst eens je probleem op te delen in deel problemen. Alsje het als zo'n groot blok aanvliegt gaat het nooit lukken natuurlijk. Je werkelijke probleem bestaat namelijk uit de volgende sub problemen:

- Hoe maak ik van een lijst waarden een lijst met het aantal voorkomens van een waarde?
- Hoe teken ik op een canvas?
- Hoe maak ik van een lijst getallen een staafgrafiekje?
- Hoe kan ik een canvas opslaan als een (png) afbeelding?

Los al deze deel problemen op en je hebt een oplossing voor je gehele probleem.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • monnick
  • Registratie: December 2005
  • Niet online
Ik gebruik nu Origin als statistisch programma om de waarden om te zetten naar histogram. Om het gemakkelijk voor de gebruiker te maken heb ik het liefst dat mijn programma histogram genereert.

De informatie die jullie (Hydra, Janoz) geven had ik zelf ook gevonden. Ik had eigenlijk gehoopt dat er een makkelijkere manier was om een histogram te krijgen. Ik kan natuurlijk zelf een hele klasse schrijven die een histogram genereert, maar dit is redelijk veel werk. Iemand enig idee of er voor Java klassen beschikbaar zijn die dit gemakkelijker maken? MATLAB doet dit wel gewoon out-of-the-box.

@Hieronder: Klopt, ImageJ heeft een Histogram class. Maar dat is eigenlijk niks meer dan een wrapper om de integer waardes in op te slaan. Het probleem zit hem meer in het makkelijk genereren van een afbeelding.

[ Voor 18% gewijzigd door monnick op 16-01-2012 11:46 ]


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Als performance niet zeer belangrijk is zou ik gewoon even dat al genoemde R scripten om dat pngtje te maken. Het voordeel daarvan is dat je ook vrij makkelijk andere plotjes kan maken zoals boxplots, density plots, beanplots en weet ik wat niet meer.

Ik ken ImageJ niet, maar ik zie dat ImageJ histogrammen kan maken dus kun je die ingebouwde functionaliteit niet gebruiken? :p

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • HMS
  • Registratie: Januari 2004
  • Laatst online: 21-08 23:06

HMS

Al naar jChart gekeken?

http://jcharts.sourceforge.net/

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
monnick schreef op maandag 16 januari 2012 @ 11:44:
De informatie die jullie (Hydra, Janoz) geven had ik zelf ook gevonden.
Misschien een idee om in je startpost iets duidelijker te maken WAT je nu prcies wil en wat je zelf al gevonden hebt.

Er zijn histogram libraries voor Java. Of ze voldoen aan wat jij wil zul je toch vooral zelf moeten uitzoeken. Via google kom ik bijvoorbeeld bij http://opensource.flaptor.com/hist4j/index.html uit.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
monnick schreef op maandag 16 januari 2012 @ 11:44:
MATLAB doet dit wel gewoon out-of-the-box.
Matlab kun je ook prima vanuit Java oproepen ;) Maar inderdaad, MATLAB, R, of Octave zijn geeigende programmas voor data-analyse. Ik snap niet dat je beeldverwerkingssoftware voor data-analyse wil gebruiken. In de context van beeldverwerkingssoftware betekend een histogram ook iets anders (of beter gezegd is het specifieker).

Google komt bij mij trouwens als eerste op http://www.roseindia.net/...hart/createhistogram.html

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • Remus
  • Registratie: Juli 2000
  • Laatst online: 15-08-2021
monnick schreef op maandag 16 januari 2012 @ 11:44:
@Hieronder: Klopt, ImageJ heeft een Histogram class. Maar dat is eigenlijk niks meer dan een wrapper om de integer waardes in op te slaan. Het probleem zit hem meer in het makkelijk genereren van een afbeelding.
Dat is niet zo gek: ieder probleem, datadomein of requirements heeft weer zijn eigen eigenaardigheden bij het bepalen van de histogram verdeling. Dus zal je standaard alleen oplossingen vinden om de histogram te tekenen op basis van reeds bepaalde histogram verdelingen.

Acties:
  • 0 Henk 'm!

  • monnick
  • Registratie: December 2005
  • Niet online
Bedankt voor de jChart en jFreeChart tips! Beide packages zien er bruikbaar uit. Ik ga nu eerst even de laatst genoemde testen. :)
Pagina: 1