Jump to content
ACosta

Mostrar valor dos pontos do gráfico

Recommended Posts

ACosta

Boas tardes,

Estou a precisar de uma ajudinha com o gráfico no VB.NET.

estou a usar o Microsoft Chart.

O gráfico está a funcionar perfeitamente.

O gráfico é de linhas.

Os dados são recolhidos directamente de uma tabela na Base Dados.

O eixo de X com o tempo e o eixo do Y com os valores de cada serie que tenho.

A minha questão é a seguinte, eu preciso de saber o valor de um ponto da serie do gráfico ao passar o rato por cima da linha.

Isto é, ao passar o rato por cima da linha de uma serie no gráfico aparecer em tolltip, os dados daquele ponto da serie, tempo(X) e valor(Y).

Estou a pensar em usar o evento mousemove() mas não sei como obter os valores e mostra-los.

Gostava de ter ajuda de como fazer isto!

Obrigado,

António Costa

Share this post


Link to post
Share on other sites
cdaniel.marques

Tenta este exemplo no Form Load:

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
       Dim lstPersons As New List(Of String)
       lstPersons.AddRange(New String() {"Bob", "Mary", "Greg", "Rachel"})
       Dim lstSales As New List(Of Integer)
       lstSales.AddRange(New Integer() {10, 5, 20, 15}.ToList)
       Chart1.Series(0).Points.DataBindXY(lstPersons, lstSales)
       Chart1.Series(0).ToolTip = "SalesPerson = #VALX" & vbCrLf & "Sales = #VALY{C}"
End Sub

Edited by thoga31
GeSHi

Share this post


Link to post
Share on other sites
cdaniel.marques

Como já tens o gráfico preenchido (com os dados da uma base de dados), apenas precisas usar esta linha de código, após o bloco de código que usas para preencher o gráfico:

Chart1.Series(0).ToolTip = "SalesPerson = #VALX" & vbCrLf & "Sales = #VALY{C}"

Edited by cdaniel.marques

Share this post


Link to post
Share on other sites
ACosta

Muito Obrigado pela ajuda! ;)

como queria a hora e o valor, no meu caso da temperatura ficou assim:

Chart1.Series(0).ToolTip = "Hora: = #VALX{H:mm:ss}" & vbCrLf & "Valor: = #VALY ºC"

Share this post


Link to post
Share on other sites
ACosta

For Each zona In dcxServer.ZonasDescricao
      Dim numSerie As Integer = zona.ZDE_ID - 1
      Chart1.Series(numSerie).ToolTip = "Hora: #VALX{HH:mm:ss}" & vbCrLf & "Serie: #SERIESNAME" & vbCrLf & "Valor: #VALY " & zona.ZDE_Unidade
Next
Chart1.DataBind()

é este o código que tenho para colocar o tooltip em todas as series do gráfico, o problema é que na Hora (valor do X, #VALX{HH:mm:ss}) apenas me mostra na primeira serie, ouseja na serie(0).

já tive a fazer uns teste e se colocar #VALX apenas, sem o formato para hora na serie(0) coloca a data até tudo OK mas nas serie seguintes fico com um valor esquisito tipo 41456,6542044329

Não sei se tenho de fazer algum format diferente, suponho que o numero corresponda à hora.

Alguém sabe contornar este problema?

Obrigado,

António Costa

Edited by ACosta

Share this post


Link to post
Share on other sites
ACosta

For Each zona In dcxServer.ZonasDescricao
Dim numSerie As Integer = zona.ZDE_ID - 1
Chart1.Series(numSerie).ToolTip = "Hora: #VALX{HH:mm:ss}" & vbCrLf & "Serie: #SERIESNAME" & vbCrLf & "Valor: #VALY " & zona.ZDE_Unidade
Next
Chart1.DataBind()

é este o código que tenho para colocar o tooltip em todas as series do gráfico, o problema é que na Hora (valor do X, #VALX{HH:mm:ss}) apenas me mostra na primeira serie, ouseja na serie(0).

já tive a fazer uns teste e se colocar #VALX apenas, sem o formato para hora na serie(0) coloca a data até tudo OK mas nas serie seguintes fico com um valor esquisito tipo 41456,6542044329

Não sei se tenho de fazer algum format diferente, suponho que o numero corresponda à hora.

Alguém sabe contornar este problema?

Obrigado,

António Costa

Encontrei a solução ao meu problema! E a solução é definir os valores do eixo do X como DateTime

Chart1.Series(numSerie).XValueType = ChartValueType.DateTime
Chart1.Series(numSerie).ToolTip = "Hora: #VALX{HH:mm:ss}" & vbCrLf & "Serie: #SERIESNAME" & vbCrLf & "Valor: #VALY "
Edited by ACosta

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.