为简化柱状图布局计算,需在div2/div3外再套一个div,高度改变需重新计算位置。
好了,一切代码说话:
<script type='text/javascript'>
// 对子div(bar1,bar2,bar3,bar4……)设置新高度
function setBarHeight(obj, nh) {
var oh = obj.currentStyle.height// 旧高度
obj.style.height = nh // 设置新高度
var p = obj.parentNode// 上一层div
var v = parseInt(oh.match(/\d+/)[0]) - nh// 变化量
var ph = p.currentStyle.bottom// 上级DIV旧位移
p.style.bottom = ph.replace(/\d+/, function($0) { return parseInt($0) + v }) // 定位上一层div
}
</script>
<style type='text/css'>
div#container {width: 600height: 400 border: thin 1px grey solid}
div.xbar { float:leftmargin-left: 30width:50position: relativebottom:-358}
div.xbar div { height: 20overflow: hiddenborder: thin 1px grey solid}
div.b1 { background-color:yellow}
div.b2 { background-color:lime}
</style>
<div id='container' >
<div class="xbar">
<div class="b1" id='bar1'>a</div>
<div class="b2" id='bar2'>b</div>
</div>
<div class="xbar">
<div class="b1" id='bar3'>c</div>
<div class="b2" id='bar4'>d</div>
</div>
</div>
public class CategoryItemChart {public static String generateBarChart(HttpSession session, PrintWriter pw,int w, int h,ArrayList list) {
String filename = null
try {
CategoryDataset dataset = createDataset(list)
JFreeChart chart = ChartFactory.createBarChart(
"",//图表标题
"",//X轴标题
"",//Y轴标题
dataset,//数据集合
PlotOrientation.VERTICAL,//图表显示方向(水平、垂直)
true,//是否使用图例
true,//是否使用工具提示
false//是否为图表增加URL
)
/*------------配置图表属性--------------*/
chart.setBackgroundPaint(Color.white)// 1,设置整个图表背景颜色
CategoryPlot plot = chart.getCategoryPlot()/*------------设定Plot参数-------------*/
plot.setBackgroundPaint(Color.white)// 2,设置详细图表的显示细节部分的背景颜色
plot.setDomainGridlinePaint(Color.black)// 3,设置垂直网格线颜色
plot.setDomainGridlinesVisible(false)// 4,设置是否显示垂直网格线
plot.setRangeGridlinePaint(Color.yellow)// 5,设置水平网格线颜色
plot.setRangeGridlinesVisible(false)//6,设置是否显示水平网格线
/*---------将所有数据转换为整数形式---------*/
final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis()
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits())
/*---------设置是否在柱图的状态条上显示边框----*/
CategoryItemRenderer renderer = (CategoryItemRenderer) plot.getRenderer()
BarRenderer render = (BarRenderer) plot.getRenderer()
// render.setItemMargin(0.0)
// render.setMinimumBarLength(0.0)
/*---------设置状态条颜色的深浅渐变-----------*/
GradientPaint gp0 = new GradientPaint(0.0f, 0.0f, new Color(255,200, 80), 0.0f, 0.0f, new Color(255, 255, 40))
GradientPaint gp1 = new GradientPaint(0.0f, 0.0f, new Color(50,255, 50), 0.0f, 0.0f, new Color(100, 255, 100))
GradientPaint gp2 = new GradientPaint(0.0f, 0.0f, Color.red, 0.0f,0.0f, new Color(255, 100, 100))
GradientPaint gp3 = new GradientPaint(0.0f, 0.0f, new Color(108,108, 255), 0.0f, 0.0f, new Color(150, 150, 200))
renderer.setSeriesPaint(0, gp0)
renderer.setSeriesPaint(1, gp1)
renderer.setSeriesPaint(2, gp2)
renderer.setSeriesPaint(3, gp3)
/*
*
* 解决柱状体与图片边框的间距问题
*
*
* */
/*------设置X轴标题的倾斜程度----*/
CategoryAxis domainAxis = plot.getDomainAxis()
domainAxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.E / 6.0))
/*------设置柱状体与图片边框的左右间距--*/
domainAxis.setLowerMargin(0.06)
domainAxis.setUpperMargin(0.06)
/*------设置柱状体与图片边框的上下间距---*/
ValueAxis rAxis = plot.getRangeAxis()
rAxis.setUpperMargin(0.3)
rAxis.setLowerMargin(0.3)
/*---------设置每一组柱状体之间的间隔---------*/
render.setItemMargin(0.01)
/*
*
* 解决柱状体与图片边框的间距问题
*
*
* */
/*
*
*
* 解决JFREECHART的中文显示问题
*
*
* */
/*----------设置消除字体的锯齿渲染(解决中文问题)--------------*/
chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_OFF)
/*----------设置标题字体--------------------------*/
TextTitle textTitle = chart.getTitle()
textTitle.setFont(new Font("黑体", Font.PLAIN, 20))
/*------设置X轴坐标上的文字-----------*/
domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11))
/*------设置X轴的标题文字------------*/
domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12))
/*------设置Y轴坐标上的文字-----------*/
rAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 14))
/*------设置Y轴的标题文字------------*/
rAxis.setLabelFont(new Font("黑体", Font.PLAIN, 12))
/*---------设置柱状体上的显示的字体---------*/
renderer.setBaseItemLabelFont(new Font("宋体", Font.PLAIN, 12))
renderer.setBaseItemLabelGenerator(new LabelGenerator(0.0))
renderer.setBaseItemLabelsVisible(true)
/*
*
*
* 解决JFREECHART的中文显示问题
*
*
* */
/*------得到chart的保存路径----*/
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection())
filename = ServletUtilities.saveChartAsPNG(chart, w, h, info,session)
/*------使用printWriter将文件写出----*/
ChartUtilities.writeImageMap(pw, filename, info, true)
pw.flush()
} catch (Exception e) {
System.out.println("Exception - " + e.toString())
e.printStackTrace(System.out)
filename = "public_error_500x300.png"
}
return filename
}
/*-------------设置柱状体顶端的数据显示--------------*/
static class LabelGenerator implements CategoryItemLabelGenerator {
private double threshold
public LabelGenerator(double threshold) {
this.threshold = threshold
}
public String generateLabel(CategoryDataset dataset, int row, int column) {
String result = null
final Number value = dataset.getValue(row, column)
if (value != null) {
final double v = value.doubleValue()
if (v >this.threshold) {
result = value.toString()
}
}
return result
}
public String generateRowLabel(CategoryDataset dataset, int row) {
return null
}
public String generateColumnLabel(CategoryDataset dataset, int column) {
return null
}
}
/*-----------数据封装-------------*/
private static CategoryDataset createDataset(ArrayList list) {
String s1 = "1"
String s2 = "2"
String c1 = "1"
String c2 = "2"
DefaultCategoryDataset dataset = new DefaultCategoryDataset()
dataset.setValue(44, s1, c1)
dataset.setValue(48, s2, c2)
return dataset
}
}
比较完整的一个得到柱图的代码,保存路径是临时文件,怎么从数据库取值应该会吧。把dataset处理一下就可以了。
/*如何设定+固定百度空间的背景*/在body{}中加入
background-image:url(图片地址) 定义背景图片
background-repeat: no-repeat定义背景图片不重复
background-position: center定义背景居中
background-attachment: fixed定义背景固定,不滚动参数fixed 以下内容由http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8提供,我只负责收藏及提供列表,如爱上该网站资源,本人一概不负责.
最新请到http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8
1
百度官方空间CSS说明
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/a2ab4dcea5418b0093457e73.html
2
使博客文章中链接在新窗口中打开
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/e8dc281ee56e8a1c4034177c.html
3
各模块添加滚动条实例 + 参数详解
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/a9aa7203fa81a18bd53f7c7b.html
4
文字发光方法!!!
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/25955b62a7f192dee6113a7b.html
5
在百度空间你加入透明渐变播放器
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/f275fc0ed730a0c97acbe17b.html玩6
转背景音乐播放器
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/dd12cda918e5b8ff1f17a27b.html
7
如何做半透明的百度空间
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/d666d260036b29dc8cb10d7a.html
8
改变百度空间的模块宽度
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/c320b71217d9c752f919b87a.html
9
查看任何人CSS代码和音乐地址的最简单方法
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/db62bdfac949d11da9d31179.html
10
百度空间设计的"终极技巧"
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/8373369911c03b0b6f068c79.html
11
致Baiduer CSS初学者
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/f56a76dc8fc1cda2cc116678.html
12
留言板代码
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/3b5857f93dea175a242df278.html
13
访问统计生成柱状图的CSS
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/2d473712ac3cb4cdc2fd787f.html
14
百度空间好友最新文章代码注释
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/168e031017294e02203f2e7f.html
15
博客流量统计
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/ed562f8b3769507c9f2fb47f.html
16
添加搜藏模块CSS
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/5f7d485cec862440faf2c07e.html
17
显示IP地址代码
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/c594f7319febc41aeac4af7e.html
18
你也想加入搜索引擎吗?请点击这里
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/38315e1670efdc1b962b4342.html
19
插入图片位置的代码及效果演示图
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/cdb8401bb4dd8af9ae513342.html
20
评价博客价值的几个查询方法
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/da06761921d24179dbb4bd42.html
21
RSS订阅”模块
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/d0f6431113413013b8127b41.html
22
最近读者”模块的CSS
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/7a6fdd43053bc5129213c641.html
23
增加博客点击量之三十六计
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/29fe0c26543469148b82a140.html
24
百度空间的网址功能连接项
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/9a48b4291f3d97fd98250a47.html
25
一些CSS效果教程补遗
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/33b9b36d853cc5f842169447.html
26
百度空间个性代码
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/c14f192ba8c042f9e7cd4046.html
27
利用重新定义标签,达到写文章时迅速排版的目的
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/168e0310172e4e02203f2e46.html
28
边框风格属性
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/d94b09010e4df0d5267fb546.html
29
百度空间布局剖析
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/f6d55f5888791b82810a1845.html
30
浏览器窗口滚动条特效及添加滚动条的方法
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/1366845525dc9cc7b645ae45.html
31
教你怎样让背景自动更新,包括头背景
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/738f323ef8f044f9838b1344.html
32
超链接效果修改--由浅入深
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/573adbfb633f34156c22eb44.html
33
关于字体
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/f8125888beeff097a5c2724f.html
34
让QQ去哭吧!免费用QQ空间鼠标
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/ded80254bb3e871c3b29354f.html
35
打造一个自己的百度空间"其他板块"
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/2941e3229b8557a74723e84f.html
36
文章列表板块文章区(四)------文章区的文字的设置
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/b793dfdaf5044ed8b7fd484e.html
37
文章列表板块文章区(三)------文字与边框之间的距离调整
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/fb7419dda68bda375882dd4e.html7238
文章列表板块文章区(二)------背景的颜色与图片
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/088e7cd395e266dca8ec9a4e.html
39
文章列表板块文章区(一)------边框的设置
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/b3644695578dda48d0135e4d.html
40
百度空间CSS更全面解释{转贴}
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/bb5e3ddede4ca65bcdbf1a4d.html
41
屏蔽百度
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/602c8c08c5397dd263d9864d.html
42
原创】自定义一个“公告栏”
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/f40681b38de935a4d8335a4c.html
43
如何改变TAB菜单栏的位置及颜色
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/e6031aeec0d24d2a2cf5344c.html
44
CSS在线编辑器
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/696cd5b53b2662cd37d3ca4c.html
45
关于空间导航(主页,博客。。。)
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/c71c5f13fa3cf5015baf5343.html
46
让空间拥有精美flash背景
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/8d461eef500ad0eccf1b3e43.html
47
让空间自动弹出对话框!
http://hi.baidu.com/%BF%D5%BC%E4%BD%CC%B3%CC%CD%F8/blog/item/8373369911ca3b0b6f068c43.html