Tutorial:DataMelt/3 Data Containers
1D arrays
1D arrays in DataMelt are designed for numerical calculations and are optimized for
numbers. We first consider P0D arrays (to hold double values) and
P0I (to hold integer values)
<jc lang="dmelt"> from jhplot import P0D p0=P0D("test") for i in range(10):
p0.add(i)
print p0.toString() </jc>
One can view the data containers using several methods. One is toString() which converts data into a string. One can write data into a file (including a compression) using the method toFile(file). One can also view data in a sortable table using the method toTable():
<jc lang="dmelt"> from jhplot import P0D p0=P0D("test") for i in range(1,50,2):
p0.add(i)
p0.toTable() </jc>
As for any DataMelt data object, one can write and read arrays into files using the method "toFile" and read using the method "read()"
p0.toFile("data.txt")
and read it back as:
p0.read("data.txt")
If a file was zipped use the method "readZip()".
One can access various statistical characteristics of the P0D arrays as:
<jc dmelt member_edit> from jhplot import P0D p0=P0D("test") for i in range(1,50,2):
p0.add(i)
print p0.getStatString() </jc> <fc #008000>Exercise: try to increase the number of iteration to 1000 and see the output. </jnote>
jhplot classes
jhplot.P0D - double values
jhplot.P0I - integer values
jhplot.math.DoubleArray - double X-Y values
jhplot.math.IntegerArray - integer X-Y values
colt classes
cern.colt.list.DoubleArrayList - double values
cern.colt.list.FloatArrayList - float values
cern.colt.list.IntArrayList - integer values
cern.colt.list.ShortArrayList - short values
cern.colt.list.ChartArrayList - chart values
cern.colt.list.BooleanArrayList - boolean values
2D arrays
2D arrays are based on the Java class P1D. This class can be used to show data in X-Y plane
As before, one can fill such arrays using the method "add(x,y)".
Here is a simple example how to show several data sets on on X-Y graph: <jc lang="dmelt"> from jhplot import P1D, HPlot from java.awt import Color
p1=P1D("1st data set") p1.add(1,2); p1.add(2,3); p1.add(4,5)
p2=P1D("2nd data set") p2.add(-1,3); p2.add(5,-2); p2.add(1,0) p2.setColor(Color.red)
c1 = HPlot("Canvas") c1.visible() c1.setAutoRange() c1.draw(p1); c1.draw(p2) </jc>
jhplot classes
[[/dmelt/api/jhplot/P1D.html|jhplot.P1D</javadoc> - double X-Y values (errors optionally) [[/dmelt/api/jhplot/math/DoubleArray.html|jhplot.math.DoubleArray</javadoc> - double X-Y values [[/dmelt/api/jhplot/math/IntegerArray.html|jhplot.math.IntegerArray</javadoc> - integer X-Y values
N-dimensional arrays
<ifauth ns="learn">
jhplot classes
jhplot.PND - double array in N dimensions
jhplot.PNI - integer array in N dimensions