翻譯|使用教程|編輯:楊鵬連|2021-03-09 11:30:32.737|閱讀 294 次
概述:在此博客文章中,我們將向您展示如何用兩個系列構建這個美麗的面積圖。我們對Java Swing和其中的AreaChart控件使用MindFusion圖表庫。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
MindFusion.Diagramming for WinForms是一個能幫助你創建工作流和進程圖表的.NET控件;數據庫實體關系圖表;組織圖表;對象層次和關系圖表;圖表和樹。它是基于對象-圖表框,表格和箭頭類型,將其歸類分派給其他并結合成復雜的結構。該控件提供超過預先定義的50多種圖表框,如自定義設計樣式和對圖表框著色等。MindFusion.Diagramming for WinForms現已加入在線訂購,Standard Single Developer版本原價2848現在搶購立享優惠只需2345,立即查看詳情>>
點擊下載MindFusion.Diagramming for WinForms最新試用版
在此博客文章中,我們將向您展示如何用兩個系列構建這個美麗的面積圖。我們對Java Swing和其中的AreaChart控件使用MindFusion圖表庫。
I.常規設置
我們使用IntelliJ Idea作為開發圖表應用程序的IDE。您可以使用任何其他IDE,菜單可能不同,但是步驟相同。首先,我們創建一個新項目,并在其中添加一個名為libs的文件夾。在那里,我們復制JPack.jar存檔,其中包含Pack for Java Swing集合中的所有MindFusion控件。您不必為該包使用jar存檔,只需將jar與圖表控件一起使用,即可從//mindfusion.eu/java-chart.html下載。
復制存檔后,右鍵單擊該存檔,然后從上下文菜單中選擇“添加為庫”。IDE將把jar文件添加到項目的構建路徑。當系統詢問您要將jar添加到何處時,請確保指定整個項目:
之后,我們創建一個新類,我們將其稱為AreaChart并將其擴展為JFrame。這將是我們應用程序的主要且唯一的類。在其主要方法中,我們添加了用于創建和啟動窗口的默認Java代碼。然后,我們創建AreaChart類的新實例:
public class AreaChart extends JFrame
{
public static void main(String[] args) {
JFrame f = new JFrame();
f.setTitle("MindFusion.Charting sample: Area Chart");
f.setSize(800, 600);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
com.mindfusion.charting.swing.AreaChart chart =
new com.mindfusion.charting.swing.AreaChart();
f.getContentPane().setLayout(new BorderLayout());
f.getContentPane().add(chart, BorderLayout.CENTER);
f.setVisible(true);
}
二.圖表數據和系列
圖表的數據由Series2D類的兩個實例指定。此類在構造函數中采用三個列表作為參數:帶有數據的數組(用于數據點的X坐標),帶有數據的數組(用于數據點的Y坐標)和帶有標簽的列表。帶有標簽的列表可以為空。
// create sample data series Series2D series1 = new Series2D( Arrays.asList(0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0), Arrays.asList(25.0, 35.0, 24.0, 26.0, 27.0, 19.0, 29.0, 19.0, 27.0, 23.0, 17.0, 15.0), labels);標簽列表是通過以下方式定義的:
List labels = Arrays.asList( "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec" );我們不希望標簽出現在數據點,這是呈現這些標簽的默認方式。幸運的是,Series2D類公開了一個名為setSupportedLabels的方法,該方法使我們可以指定應在何處應用這些標簽。此方法的參數是LabelKinds枚舉的一個實例,該實例公開了可以在圖表上找到的所有類型的標簽的成員。成員允許按位組合。
在我們的例子中,我們想在X軸上渲染標簽。因此,我們以以下簡單方式設置它們:
series1.setSupportedLabels(LabelKinds.XAxisLabel);
我們還必須使用setTitle方法為我們的系列指定標題。標題將顯示為圖例中系列的項目。我們將在圖表上顯示圖例,因此我們需要指定與該系列相對應的標簽。
最后,我們必須將此Series2D添加到圖表的Series集合中。我們使用getSeries獲取集合并添加新創建的系列:
chart.getSeries().add(series1);
第二個系列與第一個系列的區別僅在于Y數據。它還沒有標簽。我們在X軸上不需要兩個標簽列表-一個就足夠了。
完成數據設置后,我們可以運行應用程序來查看圖表:
該圖表是正確的,但看起來并不十分吸引人。我們需要對其進行樣式設置。
三.圖表樣式我們使用Axis類的方法微調圖表軸的外觀。使用getXAxis和getYAxis方法訪問負責兩個軸的Axis對象。我們使用setMaxValue和setInterval方法來調整兩個軸的間隔。這也影響最大值。我們還使用setTitle隱藏軸標題-我們指定一個空字符串。
chart.getYAxis().setInterval(5.0); chart.getYAxis().setMaxValue(50.0); chart.getXAxis().setMaxValue(12.0); chart.getXAxis().setInterval(1.0); chart.getXAxis().setTitle(""); chart.getYAxis().setTitle("");
然后我們自定義網格。我們想要帶有虛線的水平網格。我們使用GridType枚舉的“ Horizontal”成員。它作為圖表的setGridType方法的參數提供。我們指定用虛線setGridLineStyle和使用setGridLineColor為網格線指定顏色。
chart.setGridType(GridType.Horizontal);
chart.getTheme().setGridLineColor(new Color(190, 190, 190));
chart.getTheme().setGridLineStyle(DashStyle.Dash);
我們還需要調整圖表標簽的字體大小:
chart.setShowXCoordinates(false); chart.getTheme().setAxisLabelsFontSize(14); chart.getTheme().setDataLabelsFontSize(14);圖表具有許多屬性,可用于自定義其上使用的所有字體類型。他們是主題類的成員。每個圖表類型都有一個主題對象,可以通過getTheme訪問
最后,我們需要考慮區域圖形的顏色。我們將使用Theme的setCommonSeriesFills方法為每個Series指定顏色。commonSeriesFills和strokes屬性使用畫筆指定列表,這些畫筆為每個系列的內部和輪廓著色。
chart.getTheme().setCommonSeriesFills( Arrays.asList( new SolidBrush( new Color (102, 154, 204, 190)), new SolidBrush(new Color (156, 170, 198, 190)))); chart.getTheme().setCommonSeriesStrokes( Arrays.asList( new SolidBrush( new Color (28, 58, 88)))); chart.getTheme().setCommonSeriesStrokeThicknesses( Arrays.asList(5.0));
這些是我們AreaChart上的最后一個自定義項。最終圖表已準備就緒。
要獲得技術支持,請使用//mindfusion.eu/Forum/YaBB.pl?board=jchart_dic上Java Swing圖表庫的討論板。關于用于Java Swing的MindFusion圖表和量具庫:這是一個本機Java Swing庫,適用于繪制多種圖表和量具類型。靈活的API允許組合各種圖表部分:軸,圖和系列,以創建適合任何業務應用程序特定需求的獨特圖表:具有多個圖的圖表,四面八方的軸,在一個圖中的不同圖表圖形等等。所有圖表系列都來自基本的“系列”接口,程序員可以將其實現以創建自己的系列類。外觀由主題控制,圖表外觀可自定義。量具庫是圖表控件的一部分,并提供一組橢圓形和線性量具,可用于創建任何類型的量具,圓形或矩形量具(最多三個)。該庫隨附了一組預定義的流行儀表:指南針,時鐘,溫度計等。要了解有關Java Swing的MindFusion圖表和儀表的更多詳細信息,請訪問://mindfusion.eu/java-chart.html。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: