2 qq 16111927 qq_16111927 于 2016.03.26 19:42 提问

菜鸟学jfreechart,横坐标字体设置 5C

图片说明
横坐标是数组是数组 [年级][学院] 的时候,设置横坐标的字体,[学院]出现方格。求大神搭救!!

<%
double[][] data = new double[][] {{1310, 1220, 1110, 1000},
{720, 700, 680, 640},
{1130, 1020, 980, 800},
{440, 400, 360, 300}};
String[] rowKeys = {"大一", "大二","大三", "大四"};
String[] columnKeys = {"信工", "化工", "食科", "中药"};
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data);

JFreeChart chart = ChartFactory.createBarChart3D("实习人数",
"年级",
"百分比",
dataset,
PlotOrientation.VERTICAL,
true,
true,
false);

CategoryPlot plot = chart.getCategoryPlot();
//设置网格背景颜色

Font font=new Font("微软雅黑",Font.BOLD,18);
CategoryAxis domainAxis = plot.getDomainAxis(); //获得X轴
domainAxis.setVisible(true);
plot.setDomainAxis(domainAxis);
ValueAxis rAxis = plot.getRangeAxis(); //获得Y轴
//设置X轴坐标上的文字

domainAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 13));
//设置X轴的标题文字

domainAxis.setLabelFont(new Font("宋体", Font.BOLD, 16));
//设置Y轴坐标上的文字

rAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 13));
//设置Y轴的标题文字

rAxis.setLabelFont(new Font("宋体", Font.BOLD, 16));

plot.setBackgroundPaint(Color.white);
//设置网格竖线颜色
plot.setDomainGridlinePaint(Color.pink);
//设置网格横线颜色
plot.setRangeGridlinePaint(Color.pink);
//显示每个柱的数值,并修改该数值的字体属性

BarRenderer3D renderer = new BarRenderer3D();
renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setBaseItemLabelsVisible(true);
//默认的数字显示在柱子中,通过如下两句可调整数字的显示
//注意:此句很关键,若无此句,那数字的显示会被覆盖,给人数字没有显示出来的问题
renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
renderer.setItemLabelAnchorOffset(10D);
//设置每个地区所包含的平行柱的之间距离
//renderer.setItemMargin(0.3);
plot.setRenderer(renderer);
//设置地区、销量的显示位置
//将下方的“肉类”放到上方
plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);
//将默认放在左边的“销量”放到右方
plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);

String filename = ServletUtilities.saveChartAsPNG(chart, 700, 400, null, session);
String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;

%>

2个回答

qq_20039385
qq_20039385   2016.03.26 22:54

你这是中文乱码:柱状图设置中文乱码问题看下面代码:

 1、主题
//创建主题样式 
StandardChartTheme standardChartTheme = new StandardChartTheme("CN");//设置标题字体
standardChartTheme.setExtraLargeFont(new Font("宋书", Font.BOLD, 20));//设置图例的字体
standardChartTheme.setRegularFont(new Font("宋书", Font.PLAIN, 15));//设置轴向的字体
standardChartTheme.setLargeFont(new Font("宋书", Font.PLAIN, 15));//应用主题样式
ChartFactory.setChartTheme(standardChartTheme);
2、设置横轴
//取得横轴
CategoryAxis categoryAxis = plot.getDomainAxis();
categoryAxis.setLabelFont(new Font("宋体", Font.BOLD, 20));//横轴显示标签的字体
3、设置纵轴
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();//取得纵轴(Y轴)
rangeAxis.setLabelFont(new Font("宋体", Font.BOLD, 20));//设置纵轴(Y轴)显示标签的字体
jia20003
jia20003   2016.03.28 14:41

无需如此麻烦,下面三句即可搞定
xylineChart.getXYPlot().getDomainAxis().setLabelFont(new Font("宋体",Font.BOLD,12));
xylineChart.getXYPlot().getRangeAxis().setLabelFont(new Font("宋体",Font.BOLD,12));
xylineChart.getTitle().setFont(new Font("宋体",Font.BOLD,20));

wohaqiyi
wohaqiyi 请问xylineChart是不是就是JFreeChart 类型?
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
jfreechart折线图为横坐标换一种显示的问题
  大虾们:   是关于折线图的问题,      如果了解请帮我解决下我的问题,           就是纵坐标是 1,2,3,4,5.。。。。。这样的顺序对吧,           但是我的却是。。。。。。5,4,3,2,1的  所以我想把它改过来  不知道该哪里          请指点下  就是这个时间的顺序我想把它换一下,望大家帮忙啊
JFreeChart字体的设置
JFreeChart的字体设置通过一个方法来操作。 private static void configFont(JFreeChart chart){ // 配置字体 Font xfont = new Font("宋体",Font.PLAIN,12) ;// X轴 Font yfont = new Font("宋体",Font.PLAIN,12) ;// Y轴
JFreechart 时序图 显示x轴数据 横轴数据显示
关键代码 其中标红部分为横轴数据显示方法 public JFreeChart creatXYChart(String cdzid,String tgtime) {   Cdz cdz=super.get(Cdz.class, cdzid);   if(tgtime!=null&&!("".equals(tgtime))){    ntime=tgtime;   }   getDataS
JFreeChart学习(二)-动态生成图表,并设置图表的字体格式,显示样式
1.JFreeChart动态生成图表,并设置图表的字体格式,显示样式 /* * @(#)TimeDynamicSeries.java 2016-12-13 * * Copyright 2010 Fiberhome. All rights reserved. */ package jfreechart; import java.awt.BorderLayout; import java.
JFreeChart_GUI_Demo
<br />package demo;<br />import java.awt.BorderLayout;<br />import java.awt.Color;<br />import java.awt.Dimension;<br />import java.awt.Font;<br />import java.text.NumberFormat;<br />import java.util.HashMap;<br />import java.util.Map;<br />import javax.sw
jfreechart坐标上label过多时显示成点的解决方法
 我用的是jfreechart1.09版本的,网上找了很久,同时也看了半天的API,都没找到哪个参数可以设置坐标轴上数据显示间隔的 例如,横坐标上的数据为10个 2000年 2001年 2002年 ... 2009年 但是我只想显示 2000年 2003年 2006年 2009年 于是开始看jfreechart源码,其实很简单 修改org.jfree.chart.axis.CategoryAx
JFreeChart气泡图表
考虑不同的人的年龄,体重和工作能力可能不太相同。能力可以视为对该被绘制为图表中的气泡的小时数。 WEIGHT AGE   30 40 50 60 70 80   10 4           WORK 20   5    
JFreechart的Axis坐标设置的方法总结
转自http://blog.csdn.net/wwchu/article/details/6151872一些关于AXIS类的方法: Axis 类: void setVisible(boolean flag)坐标轴是否可见 void setAxisLinePaint(Paint paint)坐标轴线条颜色(3D轴无效) void setAxisLineStroke(Stroke stroke
自定义Jfreechart中X轴的坐标名
很多朋友看了我以前的一篇关于jfreechart+sql实现时间曲线图后都来问我,有没有可以自定义x轴坐标刻度名字的方法,其实在我写了那篇文章之后,我发现了时间曲线图的一些问题,例如时间间隔不平均的情况下,曲线图成形难看,且x轴时间显示不够人性化,当然这也可能是我没有发现处理好这个问题的方法。。。之后我还是使用了另一个方法去完成了那个客户的时间曲线图要求,就是使用了x轴坐标自定义的方法。。关于
JFreechart的Axis的方法总结
<br />   1. 一些关于AXIS类的方法:  <br />    2. Axis 类:  <br />    3. void setVisible(boolean flag)坐标轴是否可见  <br />    4. void setAxisLinePaint(Paint paint)坐标轴线条颜色(3D轴无效)  <br />    5. void setAxisLineStroke(Stroke stroke) 坐标轴线条笔触(3D轴无效)  <br />    6. void set