List of usage examples for weka.core Instances numInstances
publicint numInstances()
From source file:lu.lippmann.cdb.common.gui.ts.TimeSeriesChartUtil.java
License:Open Source License
private static void fillWithSingleAxisInterval(final Instances dataSet, final int dateIdx, final YIntervalSeriesCollection tsDataset, final double deviation, final int deviatedAttrIdx) { final int numInstances = dataSet.numInstances(); for (final Integer i : WekaDataStatsUtil.getNumericAttributesIndexes(dataSet)) { if (dataSet.attributeStats(i).missingCount == dataSet.numInstances()) { System.out.println("TimeSeriesChartUtil: Only missing values for '" + dataSet.attribute(i).name() + "', so skip it!"); continue; }//from www .j a v a 2 s . c om final YIntervalSeries ts = new YIntervalSeries(dataSet.attribute(i).name()); for (int k = 0; k < numInstances; k++) { final Instance instancek = dataSet.instance(k); final long timeInMilliSec = (long) instancek.value(dateIdx); if (instancek.isMissing(i)) { //ts.add(timeInMilliSec,null,0d,0d); } else { if (i == deviatedAttrIdx && k > 0 && k < (numInstances - 1)) { System.out.println(numInstances + " " + k + " " + instancek.value(i) + " " + (instancek.value(i) - deviation) + " " + (instancek.value(i) + deviation)); ts.add(timeInMilliSec, instancek.value(i), instancek.value(i) - deviation, instancek.value(i) + deviation); } else { ts.add(timeInMilliSec, instancek.value(i), instancek.value(i), instancek.value(i)); } //System.out.println(instancek.value(i)+" "+(instancek.value(i)-deviation)+" "+(instancek.value(i)+deviation)); } } if (!ts.isEmpty()) tsDataset.addSeries(ts); } }
From source file:lu.lippmann.cdb.common.gui.ts.TimeSeriesChartUtil.java
License:Open Source License
private static void fillWithMultipleAxis(final Instances dataSet, final int dateIdx, final TimeSeriesCollection tsDataset, final JFreeChart tsChart) { final int numInstances = dataSet.numInstances(); int axisNumber = 0; final Calendar cal = Calendar.getInstance(); for (final Integer i : WekaDataStatsUtil.getNumericAttributesIndexes(dataSet)) { final TimeSeries ts = new TimeSeries(dataSet.attribute(i).name()); for (int k = 0; k < numInstances; k++) { final long timeInMilliSec = (long) dataSet.instance(k).value(dateIdx); cal.setTimeInMillis(timeInMilliSec); if (dataSet.instance(k).isMissing(i)) { ts.addOrUpdate(new Millisecond(cal.getTime()), null); } else { ts.addOrUpdate(new Millisecond(cal.getTime()), dataSet.instance(k).value(i)); }/*from w w w .j a va 2 s .c o m*/ } if (!ts.isEmpty()) { if (axisNumber == 0) { tsDataset.addSeries(ts); } else { final XYPlot plot = tsChart.getXYPlot(); final NumberAxis axisToAdd = new NumberAxis(dataSet.attribute(i).name()); axisToAdd.setAutoRangeIncludesZero(false); plot.setRangeAxis(axisNumber, axisToAdd); final TimeSeriesCollection t = new TimeSeriesCollection(); t.addSeries(ts); plot.setDataset(axisNumber, t); plot.mapDatasetToRangeAxis(axisNumber, axisNumber); final StandardXYItemRenderer renderer2 = new StandardXYItemRenderer(); renderer2.setSeriesPaint(0, ColorHelper.getColorForAString(dataSet.attribute(i).name())); plot.setRenderer(axisNumber, renderer2); } axisNumber++; } } }
From source file:lu.lippmann.cdb.datasetview.DatasetView.java
License:Open Source License
public DatasetView setDataSet(final Instances pdataSet) { if (pdataSet.classIndex() != -1 && !pdataSet.classAttribute().isNominal()) pdataSet.setClassIndex(-1);/*www . ja v a 2 s . c o m*/ if (this.initialDataSet == null) { this.initialDataSet = pdataSet; this.initialCompleteness = new CompletenessComputer(this.initialDataSet); this.dataCompletenessProgressBar.setMaximum(pdataSet.numInstances() * pdataSet.numAttributes()); reinitDataCompleteness(); } this.dataSet = pdataSet; if (!filtered) this.notFilteredDataSet = pdataSet; updateClassSelectionMenu(); this.supervisedTransformPane.setVisible(pdataSet.classIndex() != -1); for (final TabView tv : tabViews) { tv.update(dataSet); } try { updateFiltersPane(dataSet); } catch (Exception e) { eventPublisher.publish(new ErrorOccuredEvent("Error when updating filters", e)); } updateTooltipShowingDatasetDimensions(); return this; }
From source file:lu.lippmann.cdb.datasetview.tabs.MDSTabView.java
License:Open Source License
/** * {@inheritDoc}/*from w w w . j a va2 s . com*/ */ @Override public void update0(final Instances dataSet) throws Exception { this.jxp.removeAll(); if (this.distComboListener != null) distCombo.removeActionListener(this.distComboListener); this.distComboListener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (!currentDist.equals(distCombo.getSelectedItem())) update(dataSet); currentDist = distCombo.getSelectedItem(); final MDSDistancesEnum mde = MDSDistancesEnum.valueOf(currentDist.toString()); boolean showDistanceParameters = (mde.equals(MDSDistancesEnum.MINKOWSKI)); distanceParameters.setVisible(showDistanceParameters); distanceParametersLabel.setVisible(showDistanceParameters); } }; this.distCombo.addActionListener(this.distComboListener); if (this.distanceParametersListener != null) distanceParameters.removeActionListener(this.distanceParametersListener); this.distanceParameters.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (!currentParameter.equals(distanceParameters.getText())) update(dataSet); currentParameter = distanceParameters.getText(); } }); this.distanceParameters.addActionListener(this.distanceParametersListener); if (this.shihListener != null) shihCheckbox.removeActionListener(this.shihListener); this.shihListener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { update(dataSet); } }; this.shihCheckbox.addActionListener(this.shihListener); this.shihCheckbox.setEnabled(!WekaDataStatsUtil.areAllAttributesNominal(dataSet)); if (this.ignoreListener != null) ignoreClassCheckbox.removeActionListener(this.ignoreListener); this.ignoreListener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { update(dataSet); } }; this.ignoreClassCheckbox.addActionListener(this.ignoreListener); this.ignoreClassCheckbox.setEnabled(dataSet.classIndex() != -1); if (this.maxInstancesListener != null) maxInstances.removeKeyListener(this.maxInstancesListener); this.maxInstancesListener = new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { final int cCode = e.getKeyCode(); if (cCode == KeyEvent.VK_ENTER) { update(dataSet); e.consume(); } } }; this.maxInstances.addKeyListener(maxInstancesListener); if (this.normalizeListener != null) normalizeCheckbox.removeActionListener(this.normalizeListener); this.normalizeListener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { update(dataSet); } }; this.normalizeCheckbox.addActionListener(this.normalizeListener); //TODO : use proper layout ... final JXPanel northPanel = new JXPanel(); northPanel.setLayout(new GridBagLayout()); final GridBagConstraints gbc = new GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 0; gbc.gridwidth = 2; gbc.weightx = 1; gbc.fill = GridBagConstraints.BOTH; northPanel.add(this.distCombo, gbc); gbc.weightx = 0; gbc.gridwidth = 1; gbc.gridy = 1; northPanel.add(this.distanceParametersLabel, gbc); gbc.gridx = 1; northPanel.add(this.distanceParameters, gbc); this.jxp.add(northPanel, BorderLayout.NORTH); final MDSDistancesEnum mde = MDSDistancesEnum.valueOf(distCombo.getSelectedItem().toString()); final String strOrder = distanceParameters.getText(); if (mde.equals(MDSDistancesEnum.MINKOWSKI)) { mde.setParameters(new String[] { strOrder }); } Instances usedDataSet = dataSet; if (shihCheckbox.isSelected()) { //Modify instance using SHIH Algorithm final Shih2010 shih = new Shih2010(dataSet); usedDataSet = shih.getModifiedInstances(); } this.kmeansButton = new JButton("K-means"); this.maxKField = new JTextField("10"); //Create whole panel final JXPanel southPanel = new JXPanel(); southPanel.add(shihCheckbox); southPanel.add(ignoreClassCheckbox); southPanel.add(normalizeCheckbox); southPanel.add(maxInstances); southPanel.add(new JLabel("Maximum K")); southPanel.add(maxKField); southPanel.add(kmeansButton); this.jxp.add(southPanel, BorderLayout.SOUTH); //Compute MDS final MDSResult mdsResult = ClassicMDS.doMDS(usedDataSet, mde, 2, Integer.valueOf(maxInstances.getText()), ignoreClassCheckbox.isSelected(), normalizeCheckbox.isSelected()); final JXPanel mdsView = MDSViewBuilder.buildMDSViewFromDataSet(dataSet, mdsResult, Integer.valueOf(maxInstances.getText()), new Listener<Instances>() { @Override public void onAction(final Instances parameter) { pushDataChange(new DataChange(parameter, TabView.DataChangeTypeEnum.Selection)); } }); this.jxp.add(mdsView, BorderLayout.CENTER); this.kmeansButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { //List of coordinates (x,y) of collapsed instances final Instances coordsInstances = mdsResult.buildInstancesFromMatrix(); //FIXME dangerous : K-means on ordered collapsedInstance coordinates final KmeansImproved km = new KmeansImproved(coordsInstances, Integer.valueOf(maxKField.getText())); final double[] ass = km.getClusteredInstances(); int usedK = km.getUsedKmeans().getNumClusters(); final StringBuilder labels = new StringBuilder(); for (int i = 0; i < usedK; i++) { labels.append("cluster").append((i + 1)); if (i < usedK - 1) labels.append(","); } //Build modified dataset String attributeName = "cluster_proj"; while (dataSet.attribute(attributeName) != null) attributeName += "_proj"; final Add addFilter = new Add(); addFilter.setAttributeIndex("last"); addFilter.setAttributeName(attributeName); addFilter.setNominalLabels(labels.toString()); addFilter.setInputFormat(dataSet); final Instances modDataset = Filter.useFilter(dataSet, addFilter); final int nbInstances = modDataset.numInstances(); final int nbAttributes = modDataset.numAttributes(); if (mdsResult.getCInstances().isCollapsed()) { // final KmeansResult kmr = mdsResult.getCInstances().getCentroidMap(); final List<Instances> clusters = kmr.getClusters(); int nbClusters = clusters.size(); //Build a map between any instance and it's cluster's centroid final Map<ComparableInstance, Integer> mapCentroid = new HashMap<ComparableInstance, Integer>(); for (int i = 0; i < nbClusters; i++) { final Instances cluster = clusters.get(i); final int clusterSize = cluster.size(); for (int k = 0; k < clusterSize; k++) { mapCentroid.put(new ComparableInstance(cluster.instance(k)), i); } } //Use the previous map to add the additionnal feature for every element ! for (int i = 0; i < nbInstances; i++) { final int centroidIndex = mapCentroid.get(new ComparableInstance(dataSet.instance(i))); final String value = "cluster" + (int) (ass[centroidIndex] + 1); modDataset.instance(i).setValue(nbAttributes - 1, value); } } else { for (int i = 0; i < nbInstances; i++) { final String value = "cluster" + (int) (ass[i] + 1); modDataset.instance(i).setValue(nbAttributes - 1, value); } } pushDataChange(new DataChange(modDataset, TabView.DataChangeTypeEnum.Update)); } catch (Exception e1) { e1.printStackTrace(); } } }); this.jxp.repaint(); }
From source file:lu.lippmann.cdb.datasetview.tabs.PieChartTabView.java
License:Open Source License
/** * {@inheritDoc}//from ww w.ja v a2s .c o m */ @Override public void update0(final Instances dataSet) throws Exception { for (final Object k : this.pieDataset.getKeys()) { this.pieDataset.remove((Comparable<?>) k); } final int numInstances = dataSet.numInstances(); for (final Map.Entry<Object, Integer> entry : WekaDataStatsUtil.getClassRepartition(dataSet).entrySet()) { if (entry.getValue().doubleValue() > 0) { this.pieDataset.setValue(entry.getKey().toString(), entry.getValue().doubleValue() / numInstances); final Color color = ColorHelper.getRandomBrightColor(); ((PiePlot) this.pieChart.getPlot()).setSectionPaint(entry.getKey().toString(), color); } } chartPanel.repaint(); }
From source file:lu.lippmann.cdb.datasetview.tabs.ScatterPlotTabView.java
License:Open Source License
private static ChartPanel buildChartPanel(final Instances dataSet, final int xidx, final int yidx, final int coloridx, final boolean asSerie) { final XYSeriesCollection data = new XYSeriesCollection(); final Map<Integer, List<Instance>> filteredInstances = new HashMap<Integer, List<Instance>>(); final int classIndex = dataSet.classIndex(); if (classIndex < 0) { final XYSeries series = new XYSeries("Serie", false); for (int i = 0; i < dataSet.numInstances(); i++) { series.add(dataSet.instance(i).value(xidx), dataSet.instance(i).value(yidx)); }/*w w w .j a v a2 s. c om*/ data.addSeries(series); } else { final Set<String> pvs = WekaDataStatsUtil.getPresentValuesForNominalAttribute(dataSet, classIndex); int p = 0; for (final String pv : pvs) { final XYSeries series = new XYSeries(pv, false); for (int i = 0; i < dataSet.numInstances(); i++) { if (dataSet.instance(i).stringValue(classIndex).equals(pv)) { if (!filteredInstances.containsKey(p)) { filteredInstances.put(p, new ArrayList<Instance>()); } filteredInstances.get(p).add(dataSet.instance(i)); series.add(dataSet.instance(i).value(xidx), dataSet.instance(i).value(yidx)); } } data.addSeries(series); p++; } } final JFreeChart chart = ChartFactory.createScatterPlot("Scatter Plot", // chart title dataSet.attribute(xidx).name(), // x axis label dataSet.attribute(yidx).name(), // y axis label data, // data PlotOrientation.VERTICAL, true, // include legend true, // tooltips false // urls ); final XYPlot xyPlot = (XYPlot) chart.getPlot(); final XYToolTipGenerator gen = new XYToolTipGenerator() { @Override public String generateToolTip(final XYDataset dataset, final int series, final int item) { if (classIndex < 0) { return InstanceFormatter.htmlFormat(dataSet.instance(item), true); } else { return InstanceFormatter.htmlFormat(filteredInstances.get(series).get(item), true); } } }; int nbSeries; if (classIndex < 0) { nbSeries = 1; } else { nbSeries = filteredInstances.keySet().size(); } final XYItemRenderer renderer = new XYLineAndShapeRenderer(asSerie, true) { /** */ private static final long serialVersionUID = 1L; @Override public Paint getItemPaint(final int row, final int col) { //System.out.println(row+" "+col); if (classIndex < 0) { final double v = dataSet.instance(col).value(coloridx); final double[] minmax = WekaDataStatsUtil.getMinMaxForAttributeAsArrayOfDoubles(dataSet, coloridx); final double rated = (v - minmax[0]) / (minmax[1] - minmax[0]); System.out.println("rated -> " + rated + " min=" + minmax[0] + "max=" + minmax[1]); final int colorIdx = (int) Math.round((ColorHelper.YlGnBu_9_COLORS.length - 1) * rated); //System.out.println(minmax[0]+" "+minmax[1]+" "+v+" "+rated+" "+colorIdx); return ColorHelper.YlGnBu_9_COLORS[colorIdx]; } else return super.getItemPaint(row, col); } }; xyPlot.setRenderer(renderer); for (int i = 0; i < nbSeries; i++) { renderer.setSeriesToolTipGenerator(i, gen); } return new ChartPanel(chart); }
From source file:lu.lippmann.cdb.datasetview.tabs.StatsTabView.java
License:Open Source License
public static Instances buildStatsForNumericalAttributes(final Instances dataset) throws Exception { final StringBuilder sb = new StringBuilder("@relation blabla\n"); sb.append("@attribute 'name' string\n"); sb.append("@attribute 'min' string\n"); sb.append("@attribute 'max' string\n"); sb.append("@attribute 'mean' string\n"); sb.append("@attribute 'stdDev' string\n"); sb.append("@attribute 'missing values count' string\n"); sb.append("@attribute 'missing values %' string\n"); sb.append("@attribute 'values repartition' string\n"); sb.append("@data\n"); for (int i = 0; i < dataset.numAttributes(); i++) { if (dataset.attribute(i).isNumeric() && !dataset.attribute(i).isDate()) { sb.append(dataset.attribute(i).name()).append(",") .append(FormatterUtil.DECIMAL_FORMAT.format(dataset.attributeStats(i).numericStats.min)) .append(",") .append(FormatterUtil.DECIMAL_FORMAT.format(dataset.attributeStats(i).numericStats.max)) .append(",") .append(FormatterUtil.DECIMAL_FORMAT.format(dataset.attributeStats(i).numericStats.mean)) .append(",") .append(FormatterUtil.DECIMAL_FORMAT.format(dataset.attributeStats(i).numericStats.stdDev)) .append(",").append(dataset.attributeStats(i).missingCount).append(",") .append(FormatterUtil.DECIMAL_FORMAT .format(100d * dataset.attributeStats(i).missingCount / dataset.numInstances())) .append(",").append("''").append("\n"); } else if (dataset.attribute(i).isNominal()) { sb.append(dataset.attribute(i).name()).append(",'','','','','','','"); final Map<Object, String> nominalRep = WekaDataStatsUtil .getNominalRepartitionForDescription(dataset, i); for (Map.Entry<Object, String> e : nominalRep.entrySet()) { sb.append(e.getKey()).append("=").append(e.getValue()).append(" "); }// w w w. j a v a 2s . com sb.append("'\n"); } } final Instances newds = WekaDataAccessUtil.loadInstancesFromARFFString(sb.toString(), false, false); if (WekaDataStatsUtil.getNominalAttributesIndexes(dataset).length == 0) { newds.deleteAttributeAt(newds.numAttributes() - 1); } return newds; }
From source file:lu.lippmann.cdb.datasetview.tabs.TimeSeriesCalendarPanel.java
License:Open Source License
public void refresh(final Instances dataSet, final int dateIdx, final int attrToHighlightIdx, final Mode calendarMode) { this.jxp.removeAll(); final SimpleDateFormat f = new SimpleDateFormat(dataSet.attribute(dateIdx).getDateFormat()); final LinkedHashMap<Date, Color> map = new LinkedHashMap<Date, Color>(); final AttributeStats attributeStats = (attrToHighlightIdx < 0) ? null : dataSet.attributeStats(attrToHighlightIdx); for (int i = 0; i < dataSet.numInstances(); i++) { //System.out.println(i+" "+dataSet.instance(i).value(dateIdx)); final String val = dataSet.instance(i).stringValue(dateIdx); try {//from w w w . ja v a 2 s. co m final Date d = f.parse(val); if (attrToHighlightIdx < 0) { map.put(d, Color.BLACK); } else if (dataSet.attribute(attrToHighlightIdx).isNominal()) { final int idxOfColor = ((int) dataSet.instance(i).value(attrToHighlightIdx) * (this.colors.length - 1 - this.firstColorIdx)) / attributeStats.nominalCounts.length; map.put(d, this.colors[idxOfColor + this.firstColorIdx]); } else { final double normalizedValue = (dataSet.instance(i).value(attrToHighlightIdx) - attributeStats.numericStats.min) / (attributeStats.numericStats.max - attributeStats.numericStats.min); final int idxOfColor = (int) (normalizedValue * (this.colors.length - 1 - this.firstColorIdx)); //System.out.println(normalizedValue+" "+idxOfColor); map.put(d, this.colors[idxOfColor + this.firstColorIdx]); } } catch (ParseException e) { e.printStackTrace(); } } final JScrollPane scrollp = new JScrollPane( MonthCalendarView.buildMultPanel(map, calendarMode, (int) jxp.getSize().getWidth()), JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); scrollp.setPreferredSize(new Dimension((int) jxp.getSize().getWidth() * 95 / 100, (int) jxp.getSize().getHeight() * 95 / 100)); this.jxp.add(scrollp, BorderLayout.CENTER); if (attrToHighlightIdx >= 0) { final JXPanel legendPanel = new JXPanel(); legendPanel.setBorder(new TitledBorder("Legend")); legendPanel.setBackground(Color.WHITE); legendPanel.setLayout(new GridLayout(0, 1)); if (dataSet.attribute(attrToHighlightIdx).isNominal()) { int c = 0; final Map<Object, Integer> pv = WekaDataStatsUtil.getNominalRepartition(dataSet, attrToHighlightIdx); for (final Map.Entry<Object, Integer> entry : pv.entrySet()) { final JXLabel comp = new JXLabel(entry.getKey().toString()); final int idxOfColor = (c * (this.colors.length - this.firstColorIdx)) / attributeStats.nominalCounts.length; comp.setForeground(this.colors[idxOfColor + this.firstColorIdx]); legendPanel.add(comp); c++; } } else if (dataSet.attribute(attrToHighlightIdx).isNumeric()) { final JXLabel compMin = new JXLabel("Min: " + attributeStats.numericStats.min); compMin.setForeground(this.colors[this.firstColorIdx]); legendPanel.add(compMin); final JXLabel compMax = new JXLabel("Max: " + attributeStats.numericStats.max); compMax.setForeground(this.colors[this.colors.length - 1]); legendPanel.add(compMax); } this.jxp.add(legendPanel, BorderLayout.NORTH); } final JXPanel settingsPanel = new JXPanel(); settingsPanel.setLayout(new GridLayout(1, 0)); final JComboBox calendarModeCombo = new JComboBox(Mode.values()); calendarModeCombo.setBorder(new TitledBorder("Mode")); final JComboBox attrToHighlightCombo = new JComboBox( WekaDataStatsUtil.getAttributeNames(dataSet).toArray()); attrToHighlightCombo.setBorder(new TitledBorder("Attribute to highlight")); calendarModeCombo.setSelectedItem(calendarMode); calendarModeCombo.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { refresh(dataSet, dateIdx, attrToHighlightCombo.getSelectedIndex(), Mode.valueOf(calendarModeCombo.getSelectedItem().toString())); } }); settingsPanel.add(calendarModeCombo); attrToHighlightCombo.setSelectedIndex(attrToHighlightIdx); attrToHighlightCombo.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { refresh(dataSet, dateIdx, attrToHighlightCombo.getSelectedIndex(), Mode.valueOf(calendarModeCombo.getSelectedItem().toString())); } }); settingsPanel.add(attrToHighlightCombo); this.jxp.add(settingsPanel, BorderLayout.SOUTH); }
From source file:lu.lippmann.cdb.datasetview.tabs.TimeSeriesSimilarityPanel.java
License:Open Source License
private void refresh0(final Instances dataSet) { if (dataSet.numInstances() < MAX_ROWS_COUNT) { try {/*www .ja v a2 s . co m*/ final Instances newds = WekaDataProcessingUtil.buildFilteredByAttributesDataSet(dataSet, WekaDataStatsUtil.getNumericAttributesIndexesAsArray(dataSet)); final Instances featuresDs = buildFeatureDS(newds); final JXPanel projView; if (mode.equals(Mode.MDS)) { final int limitForCollapsing = 1000; final boolean normalized = false; //TODO checkbox final MDSResult mdsResult = ClassicMDS.doMDS(featuresDs, MDSDistancesEnum.EUCLIDEAN, 2, limitForCollapsing, true, normalized); projView = MDSViewBuilder.buildMDSViewFromDataSet(featuresDs, mdsResult, limitForCollapsing, new Listener<Instances>() { @Override public void onAction(final Instances parameter) { } }, FEATUREDESC_ATTRNAME); } else { projView = null; } this.jxp.removeAll(); this.jxp.add(projView, BorderLayout.CENTER); } catch (Exception e) { e.printStackTrace(); } } else { this.jxp.removeAll(); this.jxp.add(new JXLabel("Time series are too big (limit=" + MAX_ROWS_COUNT + ")."), BorderLayout.CENTER); } }
From source file:lu.lippmann.cdb.datasetview.tabs.TimeSeriesTabView.java
License:Open Source License
private void fillTabs(final Instances dataSet) { if (dataSet.numInstances() > MAX_SIZE) { throw new IllegalStateException("Time series are too long (" + dataSet.numInstances() + "), and records count should be > " + MAX_SIZE + ": please filter data before using it."); }/*from ww w . j a v a 2 s .c o m*/ final int dateIdx = dataSet.attribute(dateAttributeField.getSelectedItem().toString()).index(); if (this.oneGraphOneAxisPanel != null) { //EXECUTOR.execute(new Runnable() //SwingUtilities.invokeLater(new Runnable() //{ //@Override //public void run() { System.out.println("TimeSeriesTabView: building 'one graph one axis' subpanel ..."); oneGraphOneAxisPanel.removeAll(); final ChartPanel oneGraphOneAxisChartPanel = TimeSeriesChartUtil .buildChartPanelForAllAttributes(dataSet, false, dateIdx, null); oneGraphOneAxisPanel.add(oneGraphOneAxisChartPanel, BorderLayout.CENTER); } //}); } /*System.out.println("TimeSeriesTabView: building 'one graph multiple axis' subpanel ..."); this.oneGraphMultipleAxisPanel.removeAll(); final ChartPanel oneGraphMultipleAxisChartPanel=TimeSeriesChartUtil.buildChartPanelForAllAttributes(dataSet,true,dateIdx); this.oneGraphMultipleAxisPanel.add(oneGraphMultipleAxisChartPanel,BorderLayout.CENTER);*/ if (this.multipleGraphsPanel != null) { //EXECUTOR.execute(new Runnable() //SwingUtilities.invokeLater(new Runnable() //{ //@Override //public void run() { System.out.println("TimeSeriesTabView: building 'multiple graphs' subpanel ..."); multipleGraphsPanel.removeAll(); multipleGraphsPanel.add(TimeSeriesChartUtil.buildPanelWithChartForEachAttribute(dataSet, dateIdx), BorderLayout.CENTER); } //}); } if (this.clusteringPanel != null) { //EXECUTOR.execute(new Runnable() //SwingUtilities.invokeLater(new Runnable() //{ //@Override //public void run() { System.out.println("TimeSeriesTabView: building 'clustering' subpanel ..."); clusteringPanel.refresh(dataSet, dateIdx); } //}); } if (this.similarityPanel != null) { //EXECUTOR.execute(new Runnable() SwingUtilities.invokeLater(new Runnable() { @Override public void run() { System.out.println("TimeSeriesTabView: building 'similarity' subpanel ..."); similarityPanel.refresh(dataSet); } }); } if (this.calendarPanel != null) { //EXECUTOR.execute(new Runnable() //SwingUtilities.invokeLater(new Runnable() //{ //@Override //public void run() { System.out.println("TimeSeriesTabView: building 'calendar' subpanel ..."); calendarPanel.refresh(dataSet, dateIdx); } //}); } }