Example: /ChartDirector/posnegbar middle

Online Documentation   -   Statistics   -   FAQ   -   Plugin Parts (All, Dependencies)   -   Class hierarchy

New in Version 22.2 22.3 22.4 22.5 23.0 23.1 23.2 23.3 23.4 23.5 24.0 24.1

The list of the   topics,   classes,   interfaces,   controls,   modules,   global methods by category,   global methods by name,   screenshots,   licenses   and   examples.

Platforms to show: All Mac Windows Linux Cross-Platform

/ChartDirector/posnegbar middle


Required plugins for this example: MBS ChartDirector Plugin

You find this example project in your Plugins Download as a Xojo project file within the examples folder: /ChartDirector/posnegbar middle

This example is the version from Fri, 13th Dec 2012.

Project "posnegbar middle.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Löschen"
Const kFileQuit = "Beenden"
Const kFileQuitShortcut = ""
End Class
Class PicWindow Inherits Window
EventHandler Sub Open() // The data for the bar chart dim data(-1) as double = array( 4.3, 2.3, 0.7, 3.4, 2.2, 2.9, 0.1, 0.1, 3.3, 2.2, 4.3, 1.6) // The labels for the bar chart dim labels(-1) as string = array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec") // Create a XYChart object of size 500 x 320 pixels dim c as new CDXYChartMBS(500, 320) // Add a title to the chart using Arial Bold Italic font call c.addTitle("Productivity Change - Year 2005", "arialbi.ttf") // Set the plotarea at (50, 30) and of size 400 x 250 pixels call c.setPlotArea(50, 30, 400, 250) // Add a bar layer to the chart using the Overlay data combine method dim layer as CDBarLayerMBS layer = c.addBarLayer(c.kOverlay) // Select positive data and add it as data set with blue (6666ff) color dim d(-1) as Double dim i,count as integer count=UBound(data) for i=0 to count if data(i)>=2.5 then d.append data(i) else d.append c.knoValue end if next call layer.addDataSet(d, &h6666ff) redim d(-1) count=UBound(data) for i=0 to count if data(i)<2.5 then d.append data(i) else d.append c.knoValue end if next 'A transparent axis of which the y = 0 is in the middle Call c.yAxis.setLinearScale(-1, 1, 2) Call c.yAxis.setColors(c.kTransparent, c.kTransparent, c.kTransparent, c.kTransparent) c.yAxis.setLabelFormat(" ") 'Now the x-axis can be put in the middle Call c.setAxisAtOrigin(c.kXAxisAtOrigin) // Select negative data and add it as data set with orange (ff6600) color call layer.addDataSet(d, &hff6600) // Add labels to the top of the bar using 8 pt Arial Bold font. The font color is // configured to be red (0xcc3300) below zero, and blue (0x3333ff) above zero. call layer.setAggregateLabelStyle("arialbd.ttf", 8, layer.yZoneColor(2.5, &hcc3300, &h3333ff)) Call Layer.setUseYAxis2() // Set the labels on the x axis and use Arial Bold as the label font dim t as CDTextBoxMBS t=c.xAxis.setLabels(labels) t.setFontStyle("arialbd.ttf") // Draw the y axis on the right of the plot area c.setYAxisOnRight(true) // Use Arial Bold as the y axis label font call c.yAxis2.setLabelStyle("arialbd.ttf") // Add a title to the y axis call c.yAxis2.setTitle("Percentage") // Add a light blue (0xccccff) zone for positive part of the plot area call c.yAxis2.addZone(2.5, 9999, &hccccff) // Add a pink (0xffffcc) zone for negative part of the plot area call c.yAxis2.addZone(-9999, 2.5, &hffcccc) 'Put the transparent y-axis on right, and so the yAxis2 will be on the left side Call c.setYAxisOnRight() 'Use the secondary y-axis for the grid lines Call c.getPlotArea().setGridAxis(c.xAxis(), c.yAxis2()) Backdrop=c.makeChartPicture End EventHandler
End Class
MenuBar MenuBar1
MenuItem FileMenu = "&Ablage"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Bearbeiten"
MenuItem EditUndo = "&Rückgängig"
MenuItem UntitledMenu1 = "-"
MenuItem EditCut = "&Ausschneiden"
MenuItem EditCopy = "&Kopieren"
MenuItem EditPaste = "&Einfügen"
MenuItem EditClear = "#App.kEditClear"
MenuItem UntitledMenu0 = "-"
MenuItem EditSelectAll = "&Alles auswählen"
End MenuBar
End Project

See also:

The items on this page are in the following plugins: MBS ChartDirector Plugin.


💬 Ask a question or report a problem