Få ut mer datapunkter ur en graf?
Få ut mer datapunkter ur en graf?
Jag är inte så bra på att hantera grafer och skulle behöva lite vägledning. Det viktiga här är att jag kan manipulera kurvan så den "ser bra ut" snarare än att den följer nån specifik metod.
Om jag har en XY-graf med t.ex. 5 punkter(koordinater) och först vill kunna få en mjuk kurva genom punkterna och sen få ut t.ex. 40 värden längs den nya kurvan. Hur skulle jag kunna göra det och med vilket program?
Bilden visar en snabb skiss på det jag vill göra:
- Jag har dom 5 röda punkterna
- Jag vill kunna få en mjuk kurva genom dom som den röda kurvan, gärna att man kan justera den manuellt på nått vis så den "ser bra ut".
- Jag vill kunna få ut nya värden längs kurvan, de blå punkterna.
- Jag vill kunna använda värdena i nya beräkningar så om det går att göra i ett kalkylprogram är det ju bra. Jag kan göra det i SolidWorks men det är ju inte riktigt rätt verktyg.
Jag har inte Excel men däremot OpenOffice Calc och Appel Numbers, om nått av dom skulle klara detta? Eller finns det nått bra verktyg för dylika uppgifter?
Om jag har en XY-graf med t.ex. 5 punkter(koordinater) och först vill kunna få en mjuk kurva genom punkterna och sen få ut t.ex. 40 värden längs den nya kurvan. Hur skulle jag kunna göra det och med vilket program?
Bilden visar en snabb skiss på det jag vill göra:
- Jag har dom 5 röda punkterna
- Jag vill kunna få en mjuk kurva genom dom som den röda kurvan, gärna att man kan justera den manuellt på nått vis så den "ser bra ut".
- Jag vill kunna få ut nya värden längs kurvan, de blå punkterna.
- Jag vill kunna använda värdena i nya beräkningar så om det går att göra i ett kalkylprogram är det ju bra. Jag kan göra det i SolidWorks men det är ju inte riktigt rätt verktyg.
Jag har inte Excel men däremot OpenOffice Calc och Appel Numbers, om nått av dom skulle klara detta? Eller finns det nått bra verktyg för dylika uppgifter?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Få ut mer datapunkter ur en graf?
Jag hittade ett program här https://automeris.io
Med det kan man ganska enkelt konvertera en bild på en kurva till koordinater som man kan spara i en CSV-fil. Det är en ganska bra lösning men jag ser inte att det går att manipulera kurvan direkt i programmet med bibehållen "smoothing".
Dock kan jag nog komma vidare genom att göra en snygg kurva i ett ritprogram och sen konvertera bilden till koordinater
Dock meckigt att göra justeringar när man behöver göra det i ett annat program.
Om någon har något förslag där man får samma funktionalitet i ett lite mer avancerat program så är det av intresse
Med det kan man ganska enkelt konvertera en bild på en kurva till koordinater som man kan spara i en CSV-fil. Det är en ganska bra lösning men jag ser inte att det går att manipulera kurvan direkt i programmet med bibehållen "smoothing".
Dock kan jag nog komma vidare genom att göra en snygg kurva i ett ritprogram och sen konvertera bilden till koordinater

Om någon har något förslag där man får samma funktionalitet i ett lite mer avancerat program så är det av intresse

Re: Få ut mer datapunkter ur en graf?
Jag har använt https://mycurvefit.com/ för sådant.
I Excel kan man också göra en "curve fit" (kurvanpassning) och få fram formeln. Med hjälp av formeln kan man få ut oändligt antal extra punkter. Men det förutsätter att de ursprungliga punkterna beskriver en tillräckligt enkel kurva för att kunna göra en kurvanpassning. Vet inte om Open office och liknande kan motsvarande, men brukar ju vara rätt så kompatibelt med Excel.
För mer avancerat tror jag att du får utveckla ett skript i lämpligt verktyg, tex Octave (open source matlab-klon).
I Excel kan man också göra en "curve fit" (kurvanpassning) och få fram formeln. Med hjälp av formeln kan man få ut oändligt antal extra punkter. Men det förutsätter att de ursprungliga punkterna beskriver en tillräckligt enkel kurva för att kunna göra en kurvanpassning. Vet inte om Open office och liknande kan motsvarande, men brukar ju vara rätt så kompatibelt med Excel.
För mer avancerat tror jag att du får utveckla ett skript i lämpligt verktyg, tex Octave (open source matlab-klon).
Re: Få ut mer datapunkter ur en graf?
I Octave eller Matlab finns t.ex polyfit eller spline.
Kod: Markera allt
x= [ 0 , 0.09, 0.48, 0.83, 1]
y= [ 0 , 1.5, 1.7 , 1.4 , 0 ]
% help polyfit
gradtal= 5
p = polyfit (x,y, gradtal );
xx=(1:102) / 101 - 0.01; % 101 punkter som inkluderar 0 och 1
y = polyval (p, xx);
plot( xx, y)
Re: Få ut mer datapunkter ur en graf?
Med den datamängden är det inte trivialt. Om du ritar in de enbart de röda punkterna finns det ju massor med kurvformer som matchar de röda men inte de blå. Jag förstår t.ex. inte alls varför de första tre blå punkterna ligger ovanför alla de röda punkterna? Det finns inget i din data som säger att kurvan går högre än den högsta röda punkten.
Du behöver mer information om funktionen för att kunna få den röda kurvan från de röda punkterna.
Vet man att det är en viss form på kurvan är det ju enkelt att passa in den mot de röda punkterna, men då behöver man mer information än bara de röda punkterna.
Re: Få ut mer datapunkter ur en graf?
Jag vill stämma in i Nerres varningsord.
Med t.ex. polynom av 2:a, 3:e, 4:e, 5:e och 6:e och Octaves polyfit så blir det ungefär så här.
Med t.ex. splines eller en fourierserie tror jag att det går att få något som mer liknar det som TS skisserar i trådstarten. Men, det ska då baseras på mer kunskap om data än vad som framgår av dom fem datapunkterna.
/π
Med t.ex. polynom av 2:a, 3:e, 4:e, 5:e och 6:e och Octaves polyfit så blir det ungefär så här.
Med t.ex. splines eller en fourierserie tror jag att det går att få något som mer liknar det som TS skisserar i trådstarten. Men, det ska då baseras på mer kunskap om data än vad som framgår av dom fem datapunkterna.
/π
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Få ut mer datapunkter ur en graf?
En fransk kurvschablon/linjal brukar passa till att få det snyggt.
Re: Få ut mer datapunkter ur en graf?
Vive la France!
Här och nu vill jag passa på att slå ett slag för den franske matematikern/ingenjören Pierre Bézier!
Bézierfunktoner
Dessa används för att beskriva former som inte enkelt kan beskrivas med annan matematik. Renault började använda tekniken för att forma bilar redan på 1960-talet. Idag används tekniken t.ex. när tecken på skärmar och för utskrift formas.
https://en.wikipedia.org/wiki/Bézier_curve
En form som beskrivs med bézierfunktoner kan skalas godtyckligt.
Jag gjorde ett försök att beskriva TS kurva med bézierfunktoner i Octave.
Det blev så här.
/π
Här och nu vill jag passa på att slå ett slag för den franske matematikern/ingenjören Pierre Bézier!
Bézierfunktoner
Dessa används för att beskriva former som inte enkelt kan beskrivas med annan matematik. Renault började använda tekniken för att forma bilar redan på 1960-talet. Idag används tekniken t.ex. när tecken på skärmar och för utskrift formas.
https://en.wikipedia.org/wiki/Bézier_curve
En form som beskrivs med bézierfunktoner kan skalas godtyckligt.
Jag gjorde ett försök att beskriva TS kurva med bézierfunktoner i Octave.
Det blev så här.
/π
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Få ut mer datapunkter ur en graf?
Jag tror att ni missförstod detta lite
De röda punkterna kan ses som positioner där kurvan måste skära, men där i mellan så kan det hända att jag vill dra både uppåt och neråt. Så resultatet skulle kunna vara som den gröna linjen i bifogat(gröna linjen är en spline skapad av de 5 fasta punkterna plus manuellt placerade punkter för riktning och magnitud för punkterna).
Frågan är alltså om det finns någon enklare metod att få ut y-värdena än att konvertera en bild, gärna nått som uppdateras i realtid när man drar i kurvan så man direkt kan hantera den nya datan.
Själva vitsen är att jag skulle vilja ha en graf där y-värdena uppdateras när jag drar i kurvan manuellt. Dvs kurvan ska styra y-värdena och inte tvärt om.
De röda punkterna kan ses som positioner där kurvan måste skära, men där i mellan så kan det hända att jag vill dra både uppåt och neråt. Så resultatet skulle kunna vara som den gröna linjen i bifogat(gröna linjen är en spline skapad av de 5 fasta punkterna plus manuellt placerade punkter för riktning och magnitud för punkterna).
Frågan är alltså om det finns någon enklare metod att få ut y-värdena än att konvertera en bild, gärna nått som uppdateras i realtid när man drar i kurvan så man direkt kan hantera den nya datan.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Få ut mer datapunkter ur en graf?
Menar du ungefär så här?
https://cubic-bezier.com/#.14,.65,.79,.57
Som är ett typiskt sätt att arbeta med bezierfunktioner.
/π
Re: Få ut mer datapunkter ur en graf?
Här kan man välja B-splines och annat: https://ikr7.github.io/curves/
Re: Få ut mer datapunkter ur en graf?
Det är ju inte själva kurvan jag är ute efter utan ett program med rätt funktionalitet.
Jag förstår att jag nog förklarat lite dåligt vad det är jag söker men om jag förklara såhär då
I Excel, Mac Numbers, OpenOffice Calc m.fl. så kan man ha en kolumn med nummer. Om man väljer "diagram" och markerar numren så kan man få en graf utifrån det, ändrar man något nummer så ändras grafen i diagrammet. Det har väl dom flesta gjort någon gång.
Jag behöver precis den funktionaliteten men bakvänt, d.v.s. jag vill kunna dra i grafen själv medan numren i kolumnen ändras. Jag vill alltså att numren i kolumnen ska vara drivna av grafen samt att grafen kan reagera som typ en spline eller liknande. I ritprogram finns det mängder av sätt att manipulera kurvor men dom saknar ju som regel något sätt att få ut xy-datan i ett kalkylblad eller liknande.
Jag har väl kommit vidare litegrann genom att rita kurvor i Gimp och SolidWorks och sen konvertera från bild till koordinater, men det hade varit grymt om något program klarade hela kedjan i realtid
Jag förstår att jag nog förklarat lite dåligt vad det är jag söker men om jag förklara såhär då

I Excel, Mac Numbers, OpenOffice Calc m.fl. så kan man ha en kolumn med nummer. Om man väljer "diagram" och markerar numren så kan man få en graf utifrån det, ändrar man något nummer så ändras grafen i diagrammet. Det har väl dom flesta gjort någon gång.
Jag behöver precis den funktionaliteten men bakvänt, d.v.s. jag vill kunna dra i grafen själv medan numren i kolumnen ändras. Jag vill alltså att numren i kolumnen ska vara drivna av grafen samt att grafen kan reagera som typ en spline eller liknande. I ritprogram finns det mängder av sätt att manipulera kurvor men dom saknar ju som regel något sätt att få ut xy-datan i ett kalkylblad eller liknande.
Jag har väl kommit vidare litegrann genom att rita kurvor i Gimp och SolidWorks och sen konvertera från bild till koordinater, men det hade varit grymt om något program klarade hela kedjan i realtid

Re: Få ut mer datapunkter ur en graf?
Du måste i princip få fram den matematiska funktionen för kurvan. Då kan du stoppa in vilket X-värde som helst och få ut rätt Y-värde.
Du måste alltså baserat på punkterna klura ut en funktion som passerar genom dem.
Men som pi314 visar så finns det många olika funktioner som passerar genom punkterna. Du behöver alltså mer information för att begränsa funktionen.
Edit: Rättade pi213 till pi314 :)
Senast redigerad av Nerre 16 november 2024, 09:31:17, redigerad totalt 1 gång.
Re: Få ut mer datapunkter ur en graf?
Eventuellt Maxima i så fall. https://maxima.sourceforge.io/
Finns paket: https://github.com/t-o-k/Maxima-bezier
Finns paket: https://github.com/t-o-k/Maxima-bezier