div+css实现这种柱状图效果要怎么做

html-css027

div+css实现这种柱状图效果要怎么做,第1张

做到重下往上排放没办法,要实现则要计算好位置。

为简化柱状图布局计算,需在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