Please help. How do I create a chart that has only x axis plots along the bottom that has labels that are string values not numeric?
so the plots should be:
O O O---------------------------------------------------------------------------PPW Reponsible Person OIM PTW Admin Inactivate
with no line. the circles represent if a form has been approved and by which role.
Please advise how to create this ultrachart.
Also I need a right margin so the chart isn't cut off.
UltraChart1.Axis.X.TickmarkStyle = AxisTickStyle.DataIntervalUltraChart1.ScatterChart.IconSize = SymbolIconSize.LargeUltraChart1.ScatterChart.Icon = SymbolIcon.CircleUltraChart1.ChartType = ChartType.ScatterChartUltraChart1.ScatterChart.ConnectWithLines = False
I'm partly there. But the plots that have a 0 value shouldn't be plotted but they are. How do I check that if the bounds are "00", color the plot Transparent?
Private Sub Chart_FillSceneGraph(ByVal sender As Object, ByVal e As Infragistics.UltraChart.Shared.Events.FillSceneGraphEventArgs) _ Handles UltraChart2.FillSceneGraph
Dim dataPointColour As System.Drawing.Color Dim symbol As Infragistics.UltraChart.Core.Primitives.Symbol Dim symbols As New Infragistics.UltraChart.Core.Primitives.PrimitiveCollection
For Each p As Infragistics.UltraChart.Core.Primitives.Primitive In e.SceneGraph Dim polyline As Infragistics.UltraChart.Core.Primitives.Polyline
If (TypeOf p Is Infragistics.UltraChart.Core.Primitives.Polyline) Then polyline = CType(p, Infragistics.UltraChart.Core.Primitives.Polyline) Else polyline = Nothing End If
If Not polyline Is Nothing Then dataPointColour = polyline.PE.Fill polyline.PE.Fill = Color.Transparent
For Each dataPoint As Infragistics.UltraChart.Core.Primitives.DataPoint In polyline.points symbol = New Infragistics.UltraChart.Core.Primitives.Symbol() symbol.icon = Infragistics.UltraChart.Shared.Styles.SymbolIcon.Circle symbol.iconSize = Infragistics.UltraChart.Shared.Styles.SymbolIconSize.Large symbol.PE.Fill = dataPointColour symbol.point = dataPoint.point symbols.Add(symbol) Next
End If
Next
e.SceneGraph.AddRange(symbols.ToArray()) End Sub
Public Sub LoadChart() Dim dt As New DataTable
dt.Columns.Add("Series Labels", GetType(String))
dt.Columns.Add("PPW", GetType(Integer)) dt.Columns.Add("Responsible Person", GetType(Integer)) dt.Columns.Add("OIM", GetType(Integer)) dt.Columns.Add("PTW Admin", GetType(Integer)) dt.Columns.Add("De-Activate", GetType(Integer)) dt.Columns.Add("Close", GetType(Integer))
' Add the rows of data dt.Rows.Add(New [Object]() {"Workflow", 5, 5, 0, 0, 0, 0})
UltraChart2.ChartType = ChartType.LineChart UltraChart2.Axis.X.Labels.Orientation = TextOrientation.Horizontal UltraChart2.Axis.X.Labels.ItemFormat = Infragistics.UltraChart.Shared.Styles.AxisItemLabelFormat.ItemLabel
Me.UltraChart2.DataSource = dt Me.UltraChart2.DataBind() End Sub
Hello,
Instead to add points with value 0, add it as Noting and set LineChart.NullHnadaling to DontPlot:
UltraChart2.LineChart.NullHandling = NullHandling.DontPlot
http://help.infragistics.com/Help/NetAdvantage/WinForms/2013.1/CLR4.0/html/Infragistics4.Win.UltraWinChart.v13.1~Infragistics.UltraChart.Resources.Appearance.LineChartAppearance~NullHandling.html
Also I think that maybe you could consider to use UltraGrid, instead of chart, so the intervals will become ultraGridColumns and you could have checkbox in order to indicate the role for that form.
Please let me know if you have any further questions.