为什么不可以EXCEL做呢 环形图加雷达的符合图,如果要圆的也可以用环形图
创新互联专注于阜康网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供阜康营销型网站建设,阜康网站制作、阜康网页设计、阜康网站官网定制、小程序定制开发服务,打造阜康网络公司原创品牌,更为您提供阜康网站排名全网营销落地服务。
有两个图你对比着看结果,
用/* */注释掉的可以和上边的同行数相换,你试一下。
//后面的是注释
import java.applet.Applet;
import java.awt.*;
public class katai3 extends Applet {
int pa[] = new int[10];// 定义3个数组,大小为10
int a[] = new int[10];
int b[] = new int[10];
public void init() { // 初始化数组pa[]
setBackground(new Color(255, 255, 255));// 设置背景颜色白色
pa[0] = 140;
pa[1] = 100;
pa[2] = 90;
pa[3] = 120;
pa[4] = 50;
pa[5] = 60;// 给数组pa[]附初值
pa[6] = 42;
pa[7] = 150;
pa[8] = 42;
pa[9] = 150;
}
public void paint(Graphics g) {
int r, i, k;// 定义3个变量r, i, k
for (k = 0; k 5; k++) {
r = k * 50;
for (i = 0; i 10; i++) {
double rad = Math.PI / 180;// 定义角度1度
int x1 = (int) (300 + r * Math.cos(36 * (i) * rad));// 定义网格
int y1 = (int) (300 - r * Math.sin(36 * (i) * rad));
int x2 = (int) (300 + r * Math.cos(36 * (i + 1) * rad));// 定义网格
int y2 = (int) (300 - r * Math.sin(36 * (i + 1) * rad));
int x3 = (int) (300 + (-215) * Math.sin(-36 * (i - 0.5) * rad));// 定义标记数字位置
int y3 = (int) (300 + (-215) * Math.cos(-36 * (i - 0.5) * rad));
/*
int x1=(int)(300+r*Math.cos(36*(i-0.5)*rad));//定义网格
int y1=(int)(300-r*Math.sin(36*(i-0.5)*rad));
int x2=(int)(300+r*Math.cos(36*(i+0.5)*rad));//定义网格
int y2=(int)(300-r*Math.sin(36*(i+0.5)*rad));
int x3=(int)(300+(-215)*Math.sin(-36*i*rad));//定义标记数字位置
int y3=(int)(300+(-215)*Math.cos(-36*i*rad));
*/
g.drawString(i + 1 + "", x3, y3);// 画数字
g.drawLine(x1, y1, x2, y2);// 画雷达
}
}
for (i = 0; i 10; i++) {
double rad = Math.PI / 180;// 定义角度1度
a[i] = (int) (300 + pa[i] * Math.sin(36 * (i-0.5) * rad));// 定义图形区域
b[i] = (int) (300 - pa[i] * Math.cos(36 * (i-0.5) * rad));
/*a[i]=(int)(300+pa[i]*Math.sin(36*i*rad));//定义图形区域
b[i]=(int)(300-pa[i]*Math.cos(36*i*rad));
*/
}
g.setColor(Color.red);// 调g的setColor方法定义颜色-红色
g.fillPolygon(a, b, 10);// 画图形填充区域
g.setColor(Color.black);// 调g的setColor方法定义颜色-黑色
g.drawPolygon(a, b, 10);// 画轮廓线
for (i = 0; i 10; i++) {
int x4 = (int) (300 + 200 * Math.cos(36 * i * Math.PI / 180));// 定义米字骨
int y4 = (int) (300 - 200 * Math.sin(36 * i * Math.PI / 180));
/*int x4=(int)(300+200*Math.cos(36*(i-0.5)*Math.PI/180));//定义米字骨
int y4=(int)(300-200*Math.sin(36*(i-0.5)*Math.PI/180));
*/
g.setColor(Color.black);// 调g的setColor方法定义颜色-黑色
g.drawLine(300, 300, x4, y4);// 画轮廓线
}
for (k = 0; k 5; k++) {// 画刻度线0, 50, 100, 150, 200
double rad = Math.PI / 180;// 定义角度1度
g.drawString(k * 50 + "",(int) (300 - 60 * k * Math.sin(15 * rad)), 300 - k * 50);
/* g.drawString(k*50+"",300,300-k*50);
*/
}
}
}
根据需求,代码大致如下
public class T2 {
public static String getPropertyGetMethodName(String property) {
if (property == null || property.trim().length() == 0)
return "";
return "get" + String.valueOf(property.charAt(0)).toUpperCase()
+ property.subSequence(1, property.length());
}
public static void main(String[] args) {
System.out.println(getPropertyGetMethodName("a"));
System.out.println(getPropertyGetMethodName("name"));
System.out.println(getPropertyGetMethodName("names"));
}
}
通过Java程序导出带图表的excel吗?参考下面用spire.xls.jar来创建Excel图表的方法,这里以创建饼图为例,当然你也可以指定创建其他图表类型,如柱状图、折线图、雷达图、散点图等等:
import com.spire.xls.*;
import com.spire.xls.charts.ChartSerie;
import java.awt.*;
public class CreatePieChart {
public static void main(String[] args) {
//创建Workbook对象
Workbook workbook = new Workbook();
//获取第一个工作表
Worksheet sheet = workbook.getWorksheets().get(0);
//将图表数据写入工作表
sheet.getCellRange("A1").setValue("年份");
sheet.getCellRange("A2").setValue("2002");
sheet.getCellRange("A3").setValue("2003");
sheet.getCellRange("A4").setValue("2004");
sheet.getCellRange("A5").setValue("2005");
sheet.getCellRange("B1").setValue("销售额");
sheet.getCellRange("B2").setNumberValue(4000);
sheet.getCellRange("B3").setNumberValue(6000);
sheet.getCellRange("B4").setNumberValue(7000);
sheet.getCellRange("B5").setNumberValue(8500);
//设置单元格样式
sheet.getCellRange("A1:B1").setRowHeight(15);
sheet.getCellRange("A1:B1").getCellStyle().setColor(Color.darkGray);
sheet.getCellRange("A1:B1").getCellStyle().getExcelFont().setColor(Color.white);
sheet.getCellRange("A1:B1").getCellStyle().setVerticalAlignment(VerticalAlignType.Center);
sheet.getCellRange("A1:B1").getCellStyle().setHorizontalAlignment(HorizontalAlignType.Center);
sheet.getCellRange("B2:C5").getCellStyle().setNumberFormat("\"¥\"#,##0");
//添加饼图
Chart chart = sheet.getCharts().add(ExcelChartType.Pie);
//设置图表数据区域
chart.setDataRange(sheet.getCellRange("B2:B5"));
chart.setSeriesDataFromRange(false);
//设置图表位置
chart.setLeftColumn(3);
chart.setTopRow(1);
chart.setRightColumn(11);
chart.setBottomRow(20);
//设置图表标题
chart.setChartTitle("年销售额");
chart.getChartTitleArea().isBold(true);
chart.getChartTitleArea().setSize(12);
//设置系列标签
ChartSerie cs = chart.getSeries().get(0);
cs.setCategoryLabels(sheet.getCellRange("A2:A5"));
cs.setValues(sheet.getCellRange("B2:B5"));
cs.getDataPoints().getDefaultDataPoint().getDataLabels().hasValue(true);
chart.getPlotArea().getFill().setVisible(false);
//保存文档
workbook.saveToFile("output/PieChart.xlsx", ExcelVersion.Version2016);
}
}
饼图创建效果:
excel饼状图效果
给你一个我从上反编译过来的,是个雷达图,包加载对了你就能看到效果
package demo;
import java.awt.Dimension;
import javax.swing.JPanel;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.StandardCategoryToolTipGenerator;
import org.jfree.chart.plot.SpiderWebPlot;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.*;
public class SpiderWebChartDemo1 extends ApplicationFrame
{
public SpiderWebChartDemo1(String s)
{
super(s);
JPanel jpanel = createDemoPanel();
jpanel.setPreferredSize(new Dimension(500, 270));
setContentPane(jpanel);
}
private static CategoryDataset createDataset()
{
String s = "First";
String s1 = "Second";
String s2 = "Third";
String s3 = "Category 1";
String s4 = "Category 2";
String s5 = "Category 3";
String s6 = "Category 4";
String s7 = "Category 5";
DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
defaultcategorydataset.addValue(1.0D, s, s3);
defaultcategorydataset.addValue(4D, s, s4);
defaultcategorydataset.addValue(3D, s, s5);
defaultcategorydataset.addValue(5D, s, s6);
defaultcategorydataset.addValue(5D, s, s7);
defaultcategorydataset.addValue(5D, s1, s3);
defaultcategorydataset.addValue(7D, s1, s4);
defaultcategorydataset.addValue(6D, s1, s5);
defaultcategorydataset.addValue(8D, s1, s6);
defaultcategorydataset.addValue(4D, s1, s7);
defaultcategorydataset.addValue(4D, s2, s3);
defaultcategorydataset.addValue(3D, s2, s4);
defaultcategorydataset.addValue(2D, s2, s5);
defaultcategorydataset.addValue(3D, s2, s6);
defaultcategorydataset.addValue(6D, s2, s7);
return defaultcategorydataset;
}
private static JFreeChart createChart(CategoryDataset categorydataset)
{
SpiderWebPlot spiderwebplot = new SpiderWebPlot(categorydataset);
spiderwebplot.setStartAngle(54D);
spiderwebplot.setInteriorGap(0.40000000000000002D);
spiderwebplot.setToolTipGenerator(new StandardCategoryToolTipGenerator());
JFreeChart jfreechart = new JFreeChart("Spider Web Chart Demo 1", TextTitle.DEFAULT_FONT, spiderwebplot, false);
LegendTitle legendtitle = new LegendTitle(spiderwebplot);
legendtitle.setPosition(RectangleEdge.BOTTOM);
jfreechart.addSubtitle(legendtitle);
return jfreechart;
}
public static JPanel createDemoPanel()
{
JFreeChart jfreechart = createChart(createDataset());
return new ChartPanel(jfreechart);
}
public static void main(String args[])
{
SpiderWebChartDemo1 spiderwebchartdemo1 = new SpiderWebChartDemo1("SpiderWebChartDemo1");
spiderwebchartdemo1.pack();
RefineryUtilities.centerFrameOnScreen(spiderwebchartdemo1);
spiderwebchartdemo1.setVisible(true);
}
}
D3.js
D3 是最流行的可视化库之一,它被很多其他的表格插件所使用。它允许绑定任意数据到 DOM,然后将数据驱动转换应用到文档中。你可以使用它用一个数组创建基本的
HMTL 表格,或是利用它的流体过度和交互,用相似的数据创建惊人的 SVG 条形图。
ChartJS
Chart.js 是一个令人印象深刻的 JavaScript 图表库,建立在 HTML5 Canvas
基础上。目前,它支持6种图表类型(折线图,条形图,雷达图,饼图,柱状图和极地区域区)。而且,这是一个独立的包,不依赖第三方 JavaScript 库,小于
5KB。
Highcharts JS
Highcharts JS 是一个制作图表的纯 Javascript 类库,主要特性如下:兼容性:兼容当今所有的浏览器,包括 iPhone、IE
和火狐等等;对个人用户完全免 费;纯JS,无BS;支持大部分的图表类型:直线图,曲线图、区域图、区域曲线图、柱状图、饼装图、散布图;跨语言:不管是
PHP、Asp.net 还是 Java 都可以使用。
Fusioncharts
FusionCharts Suite XT 是个专业的 JavaScript
图表库,能创建任何类型的图表。它创建的图表都是可以进行完全自定义的,标签,字体,边界等等,都可以进行修改。它有很强的交互功能,有许多信息提示,可 点击的
legend 关键字,还有 dril-down,缩放/滚动 和单击打印图表功能。
Flot
Flot 是受 Plotr 和 PlotKit 的 启发,Ole Laursen 基于 jQuery 开发了一个图表绘制(WEB Chart)插件并命名为
flot。 flot 是个纯 JavaSript 库,专注于简单的使用方式,迷人的外观和交互式特性。支持的浏览器有: Internet Explorer 6+,
Chrome, Firefox 2+, Safari 3+ and Opera 9.5+。
Chartist.js
Chartist.js 提供了优美的响应图表。就像 ChartJS。它使用 SVG 渲染图,可以被控制,并通过对 CSS3 媒体查询和 SASS
定制。另外 Chartist.js 提供很酷的动画。
n3-charts
如果你是一个 AngularJS 开发者,你一定喜欢款有趣的图表。它是建立在 D3.js 和 AngularJS 的基础上,提供了可定制的
AngularJS 指令的形式不同标准的图表。
Ember Charts
Ember Charts 是一个基于 Ember.js 和 D3.js
的图表库。它包括时间序列、柱状图、饼图、点图,很容易扩展和修改。这些图表组件代表图表交互性和演示的最佳实践,是高度可定制和可扩展的。
Chartkick
Chartkick 是专为 Ruby 应用程序的 JavaScript
图表库。它提供了所有主要的图表类型,如饼图,柱形图,条形图,面积,地理,时间,以及多个系列。
MeteorCharts
它有一个很酷的图表生成器,为您提供选项来选择图表,选择主题,然后生成一个图表。
amCharts
amCharts 无疑是最漂亮的图表库。amCharts 提供了JavaScript/HTML5 Charts、Javascript/HTML5
Stock Chart、JavaScript Maps 三种图表组件。
EJS Chart
EJS图表声称自己是企业准备的图表库。图表看起来很干净,可读性比大多数旧的图表库。这也是与IE6+等旧浏览器兼容。
uvCharts
uvCharts 是一个开源的 JavaScript 图表库,号称有100多个自定义选项。它拥有12种不同的标准图表类型,开箱即用。
ECharts
基于 Canvas,纯 JavaScript
图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘、整合的能力。
商业产品常用图表库,底层基于ZRender,创建了坐标系,图例,提示,工具箱等基础组件,并在此上构建出折线图(区域图)、柱状图(条状图)、散点图(气泡图)、饼图(环形图)、K线图、地图、和弦图以及力导向布局图,同时支持任意维度的堆积和多图表混合展现。