tengo los siguientes valores de gráfico. Eje X: de 0 a 18 (valoración). Eje Y: de 0 a 1200 (importe). En excel cargo los 3 parámestros para el gráfico de burbuja: 1º parámetro (valoración). 2º parámetro (importe) 3º parámetro (radio: valoración * importe). Por ejemplo: valoración: 7, importe: 1000, radio: 7000. La burbuja en el gráfico sale perfectamente proporcionada al valor del parámetro radio.
En el componente TChart, si grabo los 3 parámetros con los mismos valores que en excel, el eje x sale bién, el eje y sale bién, pero la burbuja sale gigante.
¿cómo he de grabar en TChart el valor del 3º parámetro (Radius) para que siempre sea proporcional el tamaño de la burbuja sobre los ejes x e y.
Gracias.
GRAFICO DE BURBUJAS
-
- Site Admin
- Posts: 14730
- Joined: Mon Jun 09, 2003 4:00 am
- Location: Banyoles, Catalonia
- Contact:
Re: GRAFICO DE BURBUJAS
Hi Esquivias,
Doing something like what you reported in Excel in the attached spreadsheet I get this:
Is this similar to what you get?
As far as I can see here. Excel lets you choose whether the 3rd parameter should define bubbles radius or area. It seems that by default it's area. TeeChart only admits using radius but you can easily calculate it from a circle area, for example:
Is that what you were looking for?
Doing something like what you reported in Excel in the attached spreadsheet I get this:
Is this similar to what you get?
As far as I can see here. Excel lets you choose whether the 3rd parameter should define bubbles radius or area. It seems that by default it's area. TeeChart only admits using radius but you can easily calculate it from a circle area, for example:
Code: Select all
uses BubbleCh;
procedure TForm1.FormCreate(Sender: TObject);
var
Series1 : TBubbleSeries;
i : Integer;
x : Double;
y : Double;
area : Double;
radius : Double;
begin
Chart1.View3D:=False;
Series1:=TBubbleSeries.Create(Self);
Chart1.AddSeries(Series1);
for i := 0 to 18 do
begin
x:=i;
y:=random(1200);
area:=x*y;
radius:=Sqrt(area/Pi);
Series1.AddBubble(x, y, radius);
end;
end;
- Attachments
-
- Esquivias.zip
- (8.6 KiB) Downloaded 274 times
Best Regards,
Narcís Calvet / Development & Support Steema Software Avinguda Montilivi 33, 17003 Girona, Catalonia Tel: 34 972 218 797 http://www.steema.com |
Instructions - How to post in this forum |
Re: GRAFICO DE BURBUJAS
gracias por la rápida respuesta.
he seguido los pasos que me indicas y no sale bien.
te hago los siguientes comentarios:
EXCEL.
no varía las escalas "x" (12) e "y" (1200) independientemente del valor de la burbuja.
Ajusta el valor de la burbuja en la coordenada correspondiente dentro del valor de las escalas.
TCHART.
varía las escalas "x" e "y" según el valor de la burbuja.
es fundamental que el eje "y" no varíe porque la inversión que representa este eje nunca varía.
De esta forma en TChart no se puede hacer una comparativa de cómo varía la inversión de una entidad, a cómo varía la inversión de la entidad por la ponderación de días de colocación, p.ej.
te mando un fichero de excel como ejemplo.
la columna (valor de la burbuja) y gráfico naranja es la inversión de la entidad.
la columna (valor de la burbuja) y gráfico amarillo es la inversión de la entidad ponderada por los días de inversión.
saludos.
he seguido los pasos que me indicas y no sale bien.
te hago los siguientes comentarios:
EXCEL.
no varía las escalas "x" (12) e "y" (1200) independientemente del valor de la burbuja.
Ajusta el valor de la burbuja en la coordenada correspondiente dentro del valor de las escalas.
TCHART.
varía las escalas "x" e "y" según el valor de la burbuja.
es fundamental que el eje "y" no varíe porque la inversión que representa este eje nunca varía.
De esta forma en TChart no se puede hacer una comparativa de cómo varía la inversión de una entidad, a cómo varía la inversión de la entidad por la ponderación de días de colocación, p.ej.
te mando un fichero de excel como ejemplo.
la columna (valor de la burbuja) y gráfico naranja es la inversión de la entidad.
la columna (valor de la burbuja) y gráfico amarillo es la inversión de la entidad ponderada por los días de inversión.
saludos.
- Attachments
-
- error burbujas.jpg (144.12 KiB) Viewed 3929 times
-
- Site Admin
- Posts: 14730
- Joined: Mon Jun 09, 2003 4:00 am
- Location: Banyoles, Catalonia
- Contact:
Re: GRAFICO DE BURBUJAS
Hola ESQUIVIAS,
Es esto lo que andas buscando?
Si entiendo bien el problema al que te refieres tiene una solución fácil. Consiste en fijar el mínimo y máximo de los ejes segun los valores mínimos y máximos que puedan tener las burbujas. En mi ejemplo anterior seria:TCHART.
varía las escalas "x" e "y" según el valor de la burbuja.
es fundamental que el eje "y" no varíe porque la inversión que representa este eje nunca varía.
Code: Select all
Chart1.Axes.Bottom.SetMinMax(0, 18);
Chart1.Axes.Left.SetMinMax(0, 1200);
Best Regards,
Narcís Calvet / Development & Support Steema Software Avinguda Montilivi 33, 17003 Girona, Catalonia Tel: 34 972 218 797 http://www.steema.com |
Instructions - How to post in this forum |
-
- Site Admin
- Posts: 14730
- Joined: Mon Jun 09, 2003 4:00 am
- Location: Banyoles, Catalonia
- Contact:
Re: GRAFICO DE BURBUJAS
Hola,
A raíz de la conversación telefónica que hemos tenido hace un rato, he trabajado un poquito en lo que hemos hablado y he modificado el código anterior para que utilizara exactamente los mismos datos que el fichero de Excel que adjunte:
Lo que produce este gráfico:
Como es evidente, hay diferencias entre Excel y TeeChart aquí. Una de las principales es que Excel aplica un offset a sus ejes de forma automática. Algo parecido a MinimumOffset i MaximumOffset que está comentado en el código de arriba. Otra diferencia importante és el modo como se calcula la mida de las burbujas en Excel. No soy ningún experto en Excel, todo lo contrario, pero veo que hay 2 opciones para los valores de las burbujas: área y anchura. Siendo el primero el valor por defecto. Nosotros podríamos implementar una propiedad parecida: radio o área. Sin embargo, el modo como Excel calcula el área no es el mismo como el que implemente yo basándome en las fórmulas de geometría básicas. Tengo la impresión que Excel aplica algún factor corrector. Por ejemplo, multiplicando el radio proporcionado a las burbujas por 3 así:
Resulta en el chart de abajo, bastante más parecido a lo que se obtiene en Excel.
Que te parecen las mejoras propuestas? Crees que estamos en el buen camino hacia el tipo de gráfico que esperas obtener? Tienes alguna otra sugerencia de como Excel crea sus gráficos que podríamos ayudarte a añadir al ejemplo anterior?
Gracias de antemano y buen fin de semana.
A raíz de la conversación telefónica que hemos tenido hace un rato, he trabajado un poquito en lo que hemos hablado y he modificado el código anterior para que utilizara exactamente los mismos datos que el fichero de Excel que adjunte:
Code: Select all
uses BubbleCh, TeeGDIPlus, TeeJPEG;
procedure TForm1.FormCreate(Sender: TObject);
Const NumBubbles = 19;
var
Series1 : TBubbleSeries;
i : Integer;
x : Double;
y : Array of Double;
area : Double;
radius : Double;
g : TGDIPlusCanvas;
procedure PopulateYValues;
begin
SetLength(y, NumBubbles);
y[0]:=1119;
y[1]:=1100;
y[2]:=568;
y[3]:=406;
y[4]:=296;
y[5]:=1056;
y[6]:=1072;
y[7]:=1027;
y[8]:=840;
y[9]:=897;
y[10]:=809;
y[11]:=1014;
y[12]:=1095;
y[13]:=27;
y[14]:=497;
y[15]:=29;
y[16]:=936;
y[17]:=651;
y[18]:=335;
end;
begin
g:=TGDIPlusCanvas.Create;
Chart1.Canvas:=g;
Chart1.View3D:=False;
Series1:=TBubbleSeries.Create(Self);
Series1.ColorEachPoint:=False;
Series1.Pointer.InflateMargins:=True;
Series1.Pointer.Pen.Visible:=False;
Chart1.AddSeries(Series1);
PopulateYValues;
for i := 0 to NumBubbles-1 do
begin
x:=i;
area:=x*y[i];
radius:=Sqrt(area/Pi);
Series1.AddBubble(x, y[i], radius);
end;
{Chart1.Axes.Bottom.MinimumOffset:=50;
Chart1.Axes.Bottom.MaximumOffset:=50;
Chart1.Axes.Left.MinimumOffset:=50;
Chart1.Axes.Left.MaximumOffset:=50;}
//Chart1.Axes.Bottom.SetMinMax(-5, 25);
//Chart1.Axes.Left.SetMinMax(-200, 1400);
end;
Como es evidente, hay diferencias entre Excel y TeeChart aquí. Una de las principales es que Excel aplica un offset a sus ejes de forma automática. Algo parecido a MinimumOffset i MaximumOffset que está comentado en el código de arriba. Otra diferencia importante és el modo como se calcula la mida de las burbujas en Excel. No soy ningún experto en Excel, todo lo contrario, pero veo que hay 2 opciones para los valores de las burbujas: área y anchura. Siendo el primero el valor por defecto. Nosotros podríamos implementar una propiedad parecida: radio o área. Sin embargo, el modo como Excel calcula el área no es el mismo como el que implemente yo basándome en las fórmulas de geometría básicas. Tengo la impresión que Excel aplica algún factor corrector. Por ejemplo, multiplicando el radio proporcionado a las burbujas por 3 así:
Code: Select all
Series1.AddBubble(x, y[i], radius * 3);
Que te parecen las mejoras propuestas? Crees que estamos en el buen camino hacia el tipo de gráfico que esperas obtener? Tienes alguna otra sugerencia de como Excel crea sus gráficos que podríamos ayudarte a añadir al ejemplo anterior?
Gracias de antemano y buen fin de semana.
Best Regards,
Narcís Calvet / Development & Support Steema Software Avinguda Montilivi 33, 17003 Girona, Catalonia Tel: 34 972 218 797 http://www.steema.com |
Instructions - How to post in this forum |