[MindFusion.Diagramming for WinForms]是一個能幫助你創建工作流和進程圖表的.NET控制項;資料庫實體關係圖表;組織圖表;對象層次和關係圖表;圖表和樹。它是基於對象-圖表框,表格和箭頭類型,將其歸類分派給其他並結合成複雜的結構。該控制項提供超過預先定義的50多種圖表框,如自定義設計樣式和對圖表框著色等。
在此博客文章中,我們將向您展示如何用兩個系列構建這個美麗的面積圖。我們對Java Swing和其中的AreaChart控制項使用MindFusion圖表庫。

**
I.常規設置
**我們使用IntelliJ Idea作為開發圖表應用程序的IDE。您可以使用任何其他IDE,菜單可能不同,但是步驟相同。
首先,我們創建一個新項目,並在其中添加一個名為libs的文件夾。在那裡,我們複製JPack.jar存檔,其中包含Pack for Java Swing集合中的所有MindFusion控制項。您不必為該包使用jar存檔,只需將jar與圖表控制項一起使用,即可從 https://mindfusion.eu/java-ch… 。
複製存檔後,右鍵單擊該存檔,然後從上下文菜單中選擇「添加為庫」。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上的最後一個自定義項。最終圖表已準備就緒。
要獲得技術支持,請使用 https://mindfusion.eu/Forum/Y… Swing圖表庫的討論版。
關於用於Java Swing的MindFusion圖表和量具庫:這是一個本機Java Swing庫,適用於繪製多種圖表和量具類型。靈活的API允許組合各種圖表部分:軸,圖和系列,以創建適合任何業務應用程序特定需求的獨特圖表:具有多個圖的圖表,四面八方的軸,在一個圖中的不同圖表圖形等等。所有圖表系列都來自基本的「系列」介面,程序員可以將其實現以創建自己的系列類。外觀由主題控制,圖表外觀可自定義。量具庫是圖表控制項的一部分,並提供一組橢圓形和線性量具,可用於創建任何類型的量具,圓形或矩形量具(最多三個)。該庫隨附了一組預定義的流行儀錶:指南針,時鐘,溫度計等。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/216238.html
微信掃一掃
支付寶掃一掃