Click here to Skip to main content
15,889,582 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I have a column chart in which I want different color of every value. How to solve? Please help me.
Thanks in advance.

I am using this code.
Public Sub DotNetChartCom(ByVal Chart1 As Chart, ByVal table As DataTable, ByVal multiSeriesGroupField As String, ByVal nameField As String, _
                                     ByVal valueField As String, ByVal Tooltip As String)

        Chart1.BorderSkin.SkinStyle = BorderSkinStyle.None
        Chart1.BackColor = Drawing.Color.White
        Chart1.BorderSkin.BackColor = System.Drawing.Color.White
        Try
            Dim dsHelper As New DataSetHelper()
            Dim listUnique As New List(Of String)()
            'Dim multiSeriesGroupField As String = "multiSeriesGroupField"
            listUnique = New List(Of String)()
            listUnique.Add(multiSeriesGroupField)
            Dim dtUnique As DataTable = dsHelper.RemoveDuplicates(table, listUnique)

            Dim i As Integer = 0
            'Chart1.ChartAreas(0).AxisX.Title = "WS Rates"
            Chart1.ChartAreas(0).BackGradientStyle = GradientStyle.None
            Chart1.ChartAreas(0).BackColor = Drawing.Color.Transparent
            Chart1.ChartAreas(0).BackImageTransparentColor = Drawing.Color.Blue
            'Grid Color
            Chart1.ChartAreas(0).AxisY.LineColor = Drawing.Color.LightGray
            Chart1.ChartAreas(0).AxisX.LineColor = Drawing.ColorTranslator.FromHtml("#f9f2f2")

            'Chart1.ChartAreas(0).AxisY.MajorGrid.LineColor = Drawing.Color.LightGray
            Chart1.ChartAreas(0).AxisY.MajorGrid.LineColor = Drawing.ColorTranslator.FromHtml("#f9f2f2")
            Chart1.ChartAreas(0).AxisX.MajorGrid.LineColor = Drawing.Color.WhiteSmoke

            Chart1.Palette = ChartColorPalette.Grayscale
            Chart1.BackColor = Drawing.Color.White
            Chart1.BackSecondaryColor = Drawing.Color.White

            Chart1.BorderlineColor = Drawing.ColorTranslator.FromHtml("#f9f2f2")
            Chart1.BorderlineDashStyle = ChartDashStyle.Solid

            For Each drUnique As DataRow In dtUnique.Rows
                Dim currentGroup As String = drUnique(multiSeriesGroupField).ToString()
                Chart1.Legends.Add(currentGroup)
                Chart1.Legends(currentGroup).Docking = Docking.Bottom
                Chart1.Legends(currentGroup).Alignment = Drawing.StringAlignment.Center
                Chart1.Legends(currentGroup).LegendStyle = LegendStyle.Row
                Dim drs As DataRow() = table.[Select](multiSeriesGroupField & "=" & GetValue(currentGroup))
                If drs.Length > 0 Then
                    Chart1.Series.Add(GetValue(drUnique(multiSeriesGroupField).ToString()))

                    Chart1.Series(GetValue(drUnique(multiSeriesGroupField).ToString())).PostBackValue = "#AXISLABEL"
                    Chart1.Series(GetValue(drUnique(multiSeriesGroupField).ToString())).ToolTip = "#AXISLABEL " + currentGroup + Tooltip + ": #VAL{C}"
                    Chart1.Series(GetValue(drUnique(multiSeriesGroupField).ToString())).ChartType = SeriesChartType.Area
                    Chart1.Series(GetValue(drUnique(multiSeriesGroupField).ToString())).MarkerStyle = MarkerStyle.Circle

                    Select Case i
                        Case 0
                            Chart1.Series(GetValue(drUnique(multiSeriesGroupField).ToString())).Color = System.Drawing.ColorTranslator.FromHtml("#667C26")
                        Case 1
                            Chart1.Series(GetValue(drUnique(multiSeriesGroupField).ToString())).Color = System.Drawing.Color.Beige
                        Case 2
                            Chart1.Series(GetValue(drUnique(multiSeriesGroupField).ToString())).Color = System.Drawing.ColorTranslator.FromHtml("#817339")
                        Case 3
                            Chart1.Series(GetValue(drUnique(multiSeriesGroupField).ToString())).Color = System.Drawing.ColorTranslator.FromHtml("#4C7D7E")
                        Case 4
                            Chart1.Series(GetValue(drUnique(multiSeriesGroupField).ToString())).Color = System.Drawing.ColorTranslator.FromHtml("#736F6E")
                        Case 5
                            Chart1.Series(GetValue(drUnique(multiSeriesGroupField).ToString())).Color = System.Drawing.ColorTranslator.FromHtml("#56A5EC")
                        Case 6
                            Chart1.Series(GetValue(drUnique(multiSeriesGroupField).ToString())).Color = System.Drawing.ColorTranslator.FromHtml("#C8BBBE")
                    End Select
                    Chart1.Series(GetValue(drUnique(multiSeriesGroupField).ToString()))("ShowMarkerLines") = False
                    For Each drData As DataRow In drs
                        Chart1.Series(GetValue(drUnique(multiSeriesGroupField).ToString())).Points.DataBind(drs, nameField, valueField, "")
                    Next
                End If
                i = i + 1
            Next
            ' Data bind to the selected data source
            Chart1.DataBind()

        Catch ex As Exception
            Throw ex
        End Try

    End Sub
Posted
Updated 4-Sep-11 20:03pm
v2

1 solution

Try this one

XML
<asp:Chart ID="Chart1" runat="server">
              <Series>
                  <asp:Series Name="Series1" ChartArea="ChartArea1"  Color="Blue">;
                  </asp:Series<
              </Series>
              <ChartAreas>
                  <asp:ChartArea Name="ChartArea1">
                  </asp:ChartArea>
              </ChartAreas>
          </asp:Chart>
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900