日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了如何使用JFree Chart創建儀表圖的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我想使用餅圖和半圓環圖的組合來創建儀表圖。預期的圖像已附上。
有沒有人可以幫我修改附件中的代碼以獲得預期的結果?附加樣例代碼,改編自here:

import java.awt.Color;
import java.awt.Dimension;
import java.io.File;
import java.io.IOException;

import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.OverlayLayout;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.ChartUtils;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.RingPlot;
import org.jfree.chart.plot.dial.DialPlot;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;

public class RingChartTest {

    private static final String INVISIBLE = "have_a_look_on_me_if_you_can_xD";
    private static java.awt.Color whiteColorAlphaChannel = new java.awt.Color(255, 255, 255, 0);
    
    private static PieDataset createDataset() {
        DefaultPieDataset dataset = new DefaultPieDataset();
        dataset.setValue("Safari", 40);
        dataset.setValue("Safari1", 50);
        dataset.setValue("Safari2", 90);
        dataset.setValue(INVISIBLE, 180);
        return dataset;
    }

    private static JFreeChart createChart(PieDataset dataset) {
        JFreeChart chart = ChartFactory.createRingChart("Overall Performance", dataset, false, false, false);
        
        RingPlot plot = (RingPlot) chart.getPlot();
        
        plot.setStartAngle(180);
        plot.setCircular(true);
        plot.setSimpleLabels(true);
        plot.setSectionDepth(0.2);
        plot.setBackgroundPaint(Color.WHITE);
        plot.setSeparatorsVisible(false);
        Color invisible = new Color(0xffffff, true);
        plot.setSectionPaint(INVISIBLE, whiteColorAlphaChannel); // 180° alpha invisible
        plot.setSectionOutlinePaint(INVISIBLE, whiteColorAlphaChannel); // 180° alpha invisible
        plot.setShadowPaint(null);
        plot.setLabelGenerator(null);
         plot.setSectionOutlinesVisible(false);
        return chart;
    }

    public JPanel createDemoPanel() {
        JFreeChart jfreechart = createChart(createDataset());
        ChartPanel chartPanel = new ChartPanel(jfreechart) {
            @Override
            public Dimension getPreferredSize() {
                return new Dimension(500, 400);
            }
        };
        chartPanel.setLayout(new OverlayLayout(chartPanel));
        JLabel label = new JLabel("BrowserShare");
        label.setFont(label.getFont().deriveFont(48.0f));
        label.setHorizontalAlignment(JLabel.CENTER);
        label.setVerticalAlignment(JLabel.CENTER);
        label.setAlignmentX(0.5f);
        label.setAlignmentY(0.75f);
        label.setOpaque(false);
        label.setBackground(Color.LIGHT_GRAY);
        chartPanel.add(label);
        return chartPanel;
    }

    public static void main(String args[]) {
        PieDataset pieDataSet = createDataset();
        JFreeChart jFreeChart = createChart(pieDataSet);
        String filename1 = "C://Users//136965//Desktop//gauge_nut.jpg";

        try {
            ChartUtils.saveChartAsJPEG(new File(filename1), jFreeChart, 500, 400);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

由上述代碼創建的圖形為

我嘗試使用JFreeChart庫創建的圖表如下:

推薦答案

還可以考慮使用org.jfree.chart.plot.dial。下面的示例使用一個DialPlot和一個StandardDialScaleStandardDialRange的三個實例提供顏色。

import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import javax.swing.JFrame;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.dial.ArcDialFrame;
import org.jfree.chart.plot.dial.DialPlot;
import org.jfree.chart.plot.dial.DialPointer;
import org.jfree.chart.plot.dial.StandardDialRange;
import org.jfree.chart.plot.dial.StandardDialScale;
import org.jfree.data.general.DefaultValueDataset;

/**
 * @see https://stackoverflow.com/a/70648615/230513
 * @see https://stackoverflow.com/a/10353270/230513
 */
public class DialTest {

    private static final Color LT_GRAY = new Color(0xe0e0e0);

    private void display() {
        DefaultValueDataset data = new DefaultValueDataset(70);
        DialPlot plot = new DialPlot(data);
        plot.setView(0, -0.25, 1, 1);
        ArcDialFrame arcDialFrame = new ArcDialFrame();
        arcDialFrame.setInnerRadius(0.42);
        arcDialFrame.setOuterRadius(0.95);
        arcDialFrame.setForegroundPaint(Color.darkGray);
        plot.setDialFrame(arcDialFrame);
        StandardDialScale scale = new StandardDialScale(0, 100, 180, -180, 10, 0);
        scale.setTickRadius(0.95);
        scale.setTickLabelOffset(0.15);
        scale.setMajorTickIncrement(10);
        plot.addScale(0, scale);
        DialPointer.Pin pin = new DialPointer.Pin();
        pin.setPaint(Color.black);
        pin.setRadius(0.8);
        plot.addLayer(pin);
        plot.addLayer(new StandardDialRange(0, 40, Color.red));
        plot.addLayer(new StandardDialRange(40, 60, Color.yellow));
        plot.addLayer(new StandardDialRange(60, 100, Color.green));

        JFreeChart chart = new JFreeChart("Overall Performance", plot);
        chart.setBackgroundPaint(LT_GRAY);

        JFrame f = new JFrame("Meter Test");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.add(new ChartPanel(chart) {
            @Override
            public Dimension getPreferredSize() {
                return new Dimension(300, 300);
            }
        });
        f.pack();
        f.setLocationRelativeTo(null);
        f.setVisible(true);
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new DialTest()::display);
    }
}

這篇關于如何使用JFree Chart創建儀表圖的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:Chart JFree 儀表 創建 如何使用
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定