Jump to content
Sign in to follow this  
Chamuanza

Juntar Serie a grafico

Recommended Posts

Chamuanza

Ola Pessoal

Tenho este código que coloca no grafico a primeira contagem  (quantidade de vezes que sai cada numero 1 a 50), mas queria juntar outra serie que é a (quantidade  de vezes que sai cada estrela 1 a 11)

Private Sub butGrafico_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butGrafico.Click

        Dim xNumerosEuro(50) As Byte


        For T = 1 To 50
            xNumerosEuro(T) = T
        Next

        'Conta os numeros do Euromilhoes
        Dim yContagem(50) As Integer 

        For i As Integer = 1 To 50
            For Linhas = 0 To DataGridView1.RowCount - 1
                For Colunas = 0 To 4
                    If DataGridView1.Item(Colunas, Linhas).Value = i Then
                        yContagem(i) += 1
                    End If
                Next Colunas
            Next Linhas
        Next i
        '**************************************************************************************************
        'Conta as estrelas do euromilhoes
        Dim yContaEstrelas(11) As Byte
        Dim xEstrelasEuro(11) As Byte


        For T = 1 To 11
            xEstrelasEuro(T) = T
        Next


        For V As Integer = 1 To 11
            For Linhas = 0 To DataGridView1.RowCount - 1
                For Colunas = 5 To 6
                    If DataGridView1.Item(Colunas, Linhas).Value = V Then
                        yContaEstrelas(V) += 1
                    End If
                Next Colunas
            Next Linhas
        Next V



        With Chart1
            'define o tipo de gráfico
            .Series(0).ChartType = DataVisualization.Charting.SeriesChartType.Column

            'define o texto da legenda 
            '.Series(0).LegendText = "Nºs Saídos Euromilhões"

            'define o titulo do eixo y , sua fonte e a cor
            .ChartAreas(0).AxisY.Title = "Nº Vezes Saidos)"
            .ChartAreas(0).AxisY.TitleFont = New Font("Times New Roman", 12, FontStyle.Bold)
            .ChartAreas(0).AxisY.TitleForeColor = Color.Blue
            'define o titulo do eixo x , sua fonte e a cor
            .ChartAreas(0).AxisX.Title = "Nºs Euromilhões (1 a 50)"
            .ChartAreas(0).AxisX.TitleFont = New Font("Times New Roman", 12, FontStyle.Bold)
            .ChartAreas(0).AxisX.TitleForeColor = Color.Blue

            'define a paleta de cores usada
            .Palette = ChartColorPalette.Fire

            'vincula os dados ao gráfico
            .Series(0).Points.DataBindXY(xNumerosEuro, yContagem)
            '.Series(0).Points.DataBindXY(xEstrelasEuro, yContaEstrelas)
            'exibe os valores nos eixos
            .Series(0).IsValueShownAsLabel = True
           
            'habilita a exibição 3D
            .ChartAreas(0).Area3DStyle.Enable3D = True

        End With
     

    End Sub

Share this post


Link to post
Share on other sites
Caça

Basta adicionar uma nova série. Para a configurares faz da mesma maneira que estás a fazer, mas em vez do 0 coloca 1


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Chamuanza

Oi Caça

Para todos os valores ou só para os valores de ".Series(1).Points.DataBindXY(xEstrelasEuro, yContaEstrelas)

Share this post


Link to post
Share on other sites
Caça

Vais ter de repetir isto para a nova serie

        With Chart1
            'define o tipo de gráfico
            .Series(0).ChartType = DataVisualization.Charting.SeriesChartType.Column

            'define o texto da legenda
            '.Series(0).LegendText = "Nºs Saídos Euromilhões"

       
            'vincula os dados ao gráfico
            .Series(0).Points.DataBindXY(xNumerosEuro, yContagem)
            '.Series(0).Points.DataBindXY(xEstrelasEuro, yContaEstrelas)
            'exibe os valores nos eixos
            .Series(0).IsValueShownAsLabel = True
           
        End With


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Chamuanza

Oi  Caça

Com este código abaixo dá este erro na linha assinalada a negrito

"Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index"

  Dim xNumerosEuro(50) As Byte


        For T = 1 To 50
            xNumerosEuro(T) = T
        Next

        'Conta os numeros do Euromilhoes
        Dim yContagem(50) As Integer 

        For i As Integer = 1 To 50
            For Linhas = 0 To DataGridView1.RowCount - 1
                For Colunas = 0 To 4
                    If DataGridView1.Item(Colunas, Linhas).Value = i Then
                        yContagem(i) += 1
                    End If
                Next Colunas
            Next Linhas
        Next i
        '**************************************************************************************************
        'Conta as estrelas do euromilhoes
        Dim yContaEstrelas(11) As Byte
        Dim xEstrelasEuro(11) As Byte


        For T = 1 To 11
            xEstrelasEuro(T) = T
        Next


        For V As Integer = 1 To 11
            For Linhas = 0 To DataGridView1.RowCount - 1
                For Colunas = 5 To 6
                    If DataGridView1.Item(Colunas, Linhas).Value = V Then
                        yContaEstrelas(V) += 1
                    End If
                Next Colunas
            Next Linhas
        Next V



        With Chart1
            'define o tipo de gráfico
            .Series(0).ChartType = DataVisualization.Charting.SeriesChartType.Column
            [b].Series(1).ChartType = DataVisualization.Charting.SeriesChartType.Column[/b]
            'define o texto da legenda 
            '.Series(0).LegendText = "Nºs Saídos Euromilhões"

            'define o titulo do eixo y , sua fonte e a cor
            .ChartAreas(0).AxisY.Title = "Nº Vezes Saidos)"
            .ChartAreas(0).AxisY.TitleFont = New Font("Times New Roman", 12, FontStyle.Bold)
            .ChartAreas(0).AxisY.TitleForeColor = Color.Blue
            'define o titulo do eixo x , sua fonte e a cor
            .ChartAreas(0).AxisX.Title = "Nºs Euromilhões (1 a 50)"
            .ChartAreas(0).AxisX.TitleFont = New Font("Times New Roman", 12, FontStyle.Bold)
            .ChartAreas(0).AxisX.TitleForeColor = Color.Blue

            'define a paleta de cores usada
            .Palette = ChartColorPalette.Fire

            'vincula os dados ao gráfico
            .Series(0).Points.DataBindXY(xNumerosEuro, yContagem)
            .Series(1).Points.DataBindXY(xEstrelasEuro, yContaEstrelas)

            'exibe os valores nos eixos
            .Series(0).IsValueShownAsLabel = True
            .Series(1).IsValueShownAsLabel = True

            'habilita a exibição 3D
            .ChartAreas(0).Area3DStyle.Enable3D = True

        End With

mas se eu fizer um ciclo de cada vez e individualmente funcionam ambos

Share this post


Link to post
Share on other sites
Caça

Essa serie ainda não existe, tens de a adicionar.


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Chamuanza

Oi Caça já adicionei a serie e aparece no grafico

 Dim series As Series = Chart1.Series.Add("Series 1")

no entanto o grafico inicia o eixo X com -1 quando tenho o ciclo For a iniciar em 1, e nas colunas sem contagem aparece zeros

graficon.gif

Share this post


Link to post
Share on other sites
Caça

Tens de a configurar a tua maneira


Pedro Martins

Não respondo a duvidas por PM

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
Sign in to follow this  

×
×
  • 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.