html x y轴坐标,D3js 获取X,Y轴坐标

D3 就不多做介绍了,是一个非常强大的作图的工具。它到底怎么样,有多强大,看看官网d3js.org 就知道了.

参考地址:

1. http://www.pkuwwt.tk/d3-tutorial-cn/about.html

2. http://www.ourd3js.com/wordpress

3. www.d3js.org

要实现找到柱状图的X轴的坐标值,需要借助另外一个插件: Tip

主要 codes :

:" + d.+ "";

})

var svg = d3.select("body").append("svg")

.attr("width", width + margin.left + margin.right)

.attr("height", height + margin.top + margin.bottom)

.append("g")

.attr("transform", "translate(" + margin.left + "," + margin.top + ")");

svg.call(tip);

d3.tsv("DATA.CSV", type, function(error, data) {

x.domain(data.map(function(d) { return d.letter; }));

y.domain([0, d3.max(data, function(d) { return d.frequency; })]);

svg.append("g")

.attr("class", "x axis")

.attr("transform", "translate(0," + height + ")")

.call(xAxis);

svg.append("g")

.attr("class", "y axis")

.call(yAxis)

.append("text")

.attr("transform", "rotate(-90)")

.attr("y", 6)

.attr("dy", ".71em")

.style("text-anchor", "end")

.text("Frequency");

svg.selectAll(".bar")

.data(data)

.enter().append("rect")

.attr("class", "bar")

.attr("x", function(d) { return x(d.letter); })

.attr("width", x.rangeBand())

.attr("y", function(d) { return y(d.frequency); })

.attr("height", function(d) { return height - y(d.frequency); })

.on('mouseover', tip.show)

.on('mouseout', tip.hide)

.on('click',showTip);

});

function type(d) {

d.frequency = +d.frequency;

return d;

}

letterfrequency

A.08167

B.01492

C.02780

D.04253

E.12702

F.02288

G.02022

H.06094

I.06973

J.00153

K.00747

L.04025

M.02517

N.06749

O.07507

P.01929

Q.00098

R.05987

S.06333

T.09056

U.02758

V.01037

W.02465

X.00150

Y.01971

Z.00074 如此就可以得到坐标轴上的X,Y的值了。

添加一个 click 函数,函数的使用在选择 selectAll 方法中去找寻, selectAll 方法用来做条件的筛选工作:

function showTip(d) {

var srcIP = d.SrcIP;

alert("srcIP ="+srcIP+",cid="+cid+",lid="+lid);

handleRequest("/impala/impala/data?cid=" + cid + "&lid=" + lid + "&selection=" + srcIP,

function(headers, data) {

var headers = "

事件ID发送者接收者发生时间源IP目的IP采集类型攻击总数

for(var i=0; i

headers+="

";

headers+="

"+data[i]["xxx"]+"";

headers+="

"+data[i]["UserName"]+"";

headers+="

"+data[i]["StandBy1"]+"";

headers+="

"+data[i]["OccurTimeHour"]+"";

headers+="

"+data[i]["SrcIP"]+"";

headers+="

"+data[i]["DestIP"]+"";

headers+="

"+data[i]["CollectType"]+"";

headers+="

"+data[i]["total"]+"";

headers+="

";

}

headers+="

";

//show.

$("#dataShow").css("display","block").append(headers);

}, function(error) {

alert(error);

});

}

ajax 函数:handleRequest

function handleRequest(uri, successCallback, errorCallback) {

$.ajax({

type : "GET",

url : uri,

dataType : 'json',

success : function(result) {

var arr = eval(result);

var headers = arr[0];

var data = arr[1];

successCallback(headers, data);

},

error : function(xmlHttpRequest, textStatus, errorThrown) {

errorCallback(errorThrown);

}

});

}

如此活动D3 的 X,Y  的值就可以很容易了。

下载源码:http://download.csdn.net/detail/supingemail/8908815

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在使用d3.js添加柱状图时,我们可以通过以下步骤来添加XY轴坐标: 1. 创建画布:首先,我们需要创建一个SVG画布,并设定合适的宽度和高度,以容纳我们的柱状图和坐标轴。 2. 设定比例尺:根据数据的范围,我们需要设定一个比例尺来将数据映射到坐标轴上。比例尺可以是线性比例尺(d3.scaleLinear())或者是序数比例尺(d3.scaleOrdinal())。根据需要设定x轴和y轴的比例尺。 3. 创建坐标轴:使用d3.axis()函数创建一个坐标轴生成器,并通过指定比例尺和方向来定制坐标轴的样式和刻度。 4. 渲染坐标轴:将坐标轴生成器应用到x和y轴上,并通过translate()函数设置坐标轴的位置。例如,通过将x轴定位在底部,y轴定位在左边。 5. 创建柱状图:使用绑定数据的方式,通过SVG的矩形元素或g元素创建柱状图。可以根据数据的来设定柱状图的宽度、高度和位置。 6. 添加动画效果(可选):通过使用d3的过渡函数(transition)和延迟函数(delay),可以为柱状图添加动画效果,使其显示变得平滑。 7. 标记坐标轴刻度(可选):可以使用d3的tickFormat函数来设定坐标轴上刻度的显示格式,如千位分隔符等。 通过以上步骤,我们就可以用d3.js添加柱状图并添加XY轴坐标了。具体实现的代码可以参考d3.js的官方文档或相关教程。 ### 回答2: 在使用d3.js创建柱状图时,我们需要添加x和y轴坐标来帮助展示数据的分布和比较。下面是添加xy轴坐标的步骤: 1. 创建一个svg元素来容纳整个图表。可以使用d3.select方法选择一个div元素,并通过append方法添加一个svg元素。 2. 设置svg元素的宽度和高度,以及padding,以便给轴线留出足够的空间。 3. 创建一个x轴比例尺。根据柱状图的数据范围和svg的宽度,使用d3.scaleLinear方法创建一个线性比例尺。 4. 创建一个y轴比例尺。根据柱状图的数据范围和svg的高度,使用d3.scaleLinear方法创建一个线性比例尺。 5. 创建一个x轴生成器。使用d3.axisBottom方法创建一个x轴生成器,并传入之前创建的x比例尺。 6. 创建一个y轴生成器。使用d3.axisLeft方法创建一个y轴生成器,并传入之前创建的y比例尺。 7. 将x轴生成器应用到svg元素上的一个g元素上,并通过transform属性将其放置在适当的位置。 8. 将y轴生成器应用到svg元素上的一个g元素上,并通过transform属性将其放置在适当的位置。 9. 如果需要,可以对x轴和y轴进行一些样式设置,比如设置轴线颜色、刻度颜色、文本颜色等。 10. 最后,将柱状图绘制到svg元素上。可以使用d3.select方法选择之前创建的g元素,并通过data和enter方法添加rect元素来表示柱子。可以根据x和y比例尺的返回来设置每个柱子的位置和高度。 以上就是使用d3.js添加xy轴坐标的基本步骤。根据实际需求和个性化要求,你可以对以上步骤进行进一步的扩展和样式设置。 ### 回答3: 要在d3js中添加柱状图并添加坐标轴,首先需要以下步骤: 1. 创建SVG元素:使用d3.select选择一个HTML元素,然后添加一个SVG元素,设置其宽度和高度。例如: var svg = d3.select("body") .append("svg") .attr("width", width + margin.left + margin.right) .attr("height", height + margin.top + margin.bottom) .append("g") .attr("transform", "translate(" + margin.left + "," + margin.top + ")"); 2. 创建坐标轴比例尺:使用d3.scaleBand()创建x轴比例尺,使用d3.scaleLinear()创建y轴比例尺。然后设置其域和范围。例如: var x = d3.scaleBand() .range([0, width]) .domain(data.map(function(d) { return d.x; })); var y = d3.scaleLinear() .range([height, 0]) .domain([0, d3.max(data, function(d) { return d.y; })]); 3. 添加柱状图:使用d3.selectAll选择所有柱子的元素,然后使用data()方法将数据绑定到这些元素上。然后使用enter()方法进入上次缺失的元素,并使用append()方法添加矩形元素作为柱子。例如: svg.selectAll(".bar") .data(data) .enter() .append("rect") .attr("class", "bar") .attr("x", function(d) { return x(d.x); }) .attr("y", function(d) { return y(d.y); }) .attr("width", x.bandwidth()) .attr("height", function(d) { return height - y(d.y); }); 4. 添加坐标轴:使用d3.axisBottom()创建x轴,使用d3.axisLeft()创建y轴。然后使用call()方法将坐标轴添加到SVG元素中。例如: svg.append("g") .attr("transform", "translate(0," + height + ")") .call(d3.axisBottom(x)); svg.append("g") .call(d3.axisLeft(y)); 以上就是在d3js中添加柱状图并添加坐标轴的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值