【MindFusion。是一个. NET控件,可以帮助您创建工作流和进程图;数据库实体关系图;组织结构图;对象的层次和关系图;图表和树。它基于对象的类型-图表框、表格和箭头,这些对象被分类
【MindFusion。是一个. NET控件,可以帮助您创建工作流和进程图;数据库实体关系图;组织结构图;对象的层次和关系图;图表和树。它基于对象的类型-图表框、表格和箭头,这些对象被分类并分配给其他对象,并组合成复杂的结构。该控件提供了50多个预定义的图表框,如自定义设计风格和颜色的图表框。
在这篇博文中,我们将向你展示如何用两个系列构建这个美丽的区域地图。我们使用Java Swing及其AreaChart控件的MindFusion图表库。
**
一、一般设置* *我们使用IntelliJ Idea作为开发图表应用程序的IDE。您可以使用任何其他IDE,菜单可能不同,但步骤是相同的。
首先,我们创建一个新项目,并向其中添加一个名为libs的文件夹。在那里,我们复制JPack.jar档案,它包含Pack for Java Swing集合中的所有MindFusion控件。你不必为这个包使用jar存档,只需使用带有图表控件的jar从https://mindfusion.eu/java-ch….下载即可。
复制归档文件后,右键单击归档文件并从上下文菜单中选择“添加为库”。IDE会将jar文件添加到项目的构建路径中。当询问您想在哪里添加jar时,请确保指定整个项目:
之后,我们创建一个新的类,我们称之为AreaChart,并扩展到JFrame。这将是我们的应用程序的主要和唯一的类。在它的main方法中,我们添加了创建和启动窗口的默认Java代码。然后,我们创建一个AreaChart类的新实例:
公共类AreaChart扩展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坐标)和一个包含标签的列表。带标签的列表可以是空。
//创建样本数据系列
Series2D series1 =新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),
标签);
该列表以下列方式定义:
List labels = Arrays.asList(
"Jan", "Feb", "Mar", "Apr", "May", "Jun","Jul", "Aug", "Sept", "Oct", "Nov", "Dec"
);
我们不希望标签出现在数据点中,这是呈现这些标签的默认方式。幸运的是,Series2D类公开了一个名为setSupportedLabels的方法,它允许我们指定应该在哪里应用这些标签。此方法的参数是LabelKinds枚举的一个实例,它公开了可以在图表上找到的所有标签类型的成员。成员可以按位组合。
在我们的示例中,我们希望在X轴上呈现标签。因此,我们用下面的简单方法来设置它们:
series 1 . setsupportedlabels(label kinds。XAxisLabel);
我们还必须使用setTitle方法为我们的系列指定一个标题。标题将在图例中显示为一系列项目。我们将在图表上显示图例,因此需要指定与系列对应的标签。
最后,我们必须将这个Series2D添加到图表的系列集合中。我们使用getSeries获取集合并添加新创建的系列:
chart.getSeries()。添加(系列1);
第二个系列与第一个系列的不同之处仅在于Y数据。它还没有标签。我们不需要X轴上的两个标签列表——一个就够了。
设置数据后,我们可以运行应用程序来查看图表:
图表是正确的,但是它看起来不太吸引人。我们需要改变它的风格。
三。图表样式我们使用轴类的方法来微调图表轴的外观。使用getXAxis和getYAxis方法访问负责两个轴的轴对象。我们使用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枚举的“水平”成员。它作为图表的setGridType方法的参数提供。我们指定虚线setGridLineStyle和setGridLineColor用于指定网格线的颜色。
chart.setGridType(GridType。横向);
chart.getTheme()。setGridLineColor(新颜色(190,190,190));
chart.getTheme()。setGridLineStyle(DashStyle。破折号);
我们还需要调整图表标签的字体大小:
chart . setshowxcoordinates(false);
chart.getTheme()。setAxisLabelsFontSize(14);
chart.getTheme()。setDataLabelsFontSize(14);
图表有许多属性,可用于自定义图表上使用的所有字体类型。他们是主题类的成员。每种图表类型都有一个主题对象,可以通过getTheme访问。
最后,我们需要考虑区域图形的颜色。我们将使用主题的setCommonSeriesFills方法来指定每个系列的颜色。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));
这些是我们的面积图的最后定制。图表终于准备好了。
如需技术支持,请使用https://mindfusion.eu/Forum/Y….讨论版Swing图表库。
关于用于Java Swing的MindFusion图表和仪表库:这是一个原生的Java Swing库,适用于绘制各种类型的图表和仪表。灵活的API允许您组合各种图表部分:轴、图形和系列,以创建适合任何业务应用程序的特定需求的独特图表:具有多个图形的图表、所有方向的轴、一个图形中的不同图表数字,等等。所有图表系列都来自基本的“series”接口,程序员可以实现该接口来创建自己的系列类。由外观主题控制,可以定制图表外观。仪表库是图表控件的一部分,它提供了一组椭圆和线性仪表,可用于创建任何类型的仪表,圆形或矩形仪表(最多三个)。该库附带了一组预定义的流行仪器:指南针、时钟、温度计等。