- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含 5 列的数据库:ID、customerName、dateYear、dateMonth 和 dateDay。当用户发送表单时,日期列将添加到数据库中。例如,如果用户今天发送了表单,则 3 列将包含 2016 年、6 月和 7 年。我想制作一个 D3 条形图,可以提取此信息并显示每月/每年发送的表单数量。我有一个 HTML 格式的复选框列表,供管理员选择一个或多个月份以及一年。
<input type="submit" name="monthlyReport" value="Generate a Monthly Report for:" />
<br>
<input type="checkbox" value="January" name="monthList[]"/>January
<br>
<input type="checkbox" value="February" name="monthList[]"/>February
等等...
<select name="selyear1">
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
</select>
这是我的 PHP 代码,它接受用户输入并将其转换为查询:
$monthList = array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
$yearList = array("2016", "2017", "2018", "2019", "2020");
$monthlyReport = isset($_POST["monthlyReport"]) ? $_POST["monthlyReport"] : "";
$monthList = array();
$monthList = isset($_POST["monthList"]) ? $_POST["monthList"] : "";
$selectedYear = isset($_POST["selyear1"]) ? $_POST["selyear1"] : "";
if(isset($monthlyReport) && !empty($monthList) && in_array($selectedYear, $yearList)) {
foreach ($monthList as $month){
if (in_array($month, $monthList)) {
$stmt = $conn->prepare("SELECT dateYear, dateMonth FROM just_ink WHERE dateMonth = :month AND dateYear= :year");
$stmt->execute(array(":month" => $month, ":year"=> $selectedYear));
$result[] = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
}
}
var_dump($result);
$result 将转储此:
array(2) { [0]=> array(1) { [0]=> array(2) { ["dateYear"]=> string(4) "2016" ["dateMonth"]=> string(7) "January" } } [1]=> array(2) { [0]=> array(2) { ["dateYear"]=> string(4) "2016" ["dateMonth"]=> string(4) "June" } [1]=> array(2) { ["dateYear"]=> string(4) "2016" ["dateMonth"]=> string(4) "June" } } }
那么我到底如何将这个结果转换成D3条形图呢?我已经查看了 d3Noob 提示和技巧,但我相信这是一个更高级的案例。提前感谢您的回复!
最佳答案
如果我理解正确,您将创建一个具有所需值的数组。
$array = array( array("2016", "January"),
array("2016", "February"),
array("2016", "February"),
array("2016", "February"),
array("2016", "March"),
array("2016", "March"),
array("2016", "June"),
array("2016", "June")
);
echo json_encode($array);
//[["2016","January"],["2016","February"],["2016","February"],["2016","February"],["2016","March"],["2016","March"],["2016","June"],["2016","June"]]
我将公开一个端点,该端点将返回此json
,然后在我的脚本中使用它,这样您就可以进行异步调用,并且不会按顺序停止页面的呈现获取/等待数据。
如果我们使用上一个代码段返回的 json,我们可以调用 d3.json 并修改数据以创建条形图。
d3.json("data.json", function(error, data) {
var nested_data = d3.nest()
.key(function(d) {
return d[1];
})
.rollup(function(leaves) {
return leaves.length;
})
.entries(data);
console.log(nested_data);
//Object {key: "January", values: 1}
//Object {key: "February", values: 3}
//Object {key: "March", values: 2}
//Object {key: "June", values: 2}
x.domain(nested_data.map(function(d) { // Set x domain by keys (Month Name)
return d.key;
}));
y.domain([0, d3.max(nested_data, function(d) { // Set y domain by finding max value (Month count)
return d.values;
})]);
svg.append("g") // Append x-axis
.attr("class", "x axis")
.attr("transform", "translate(0," + height + ")")
.call(xAxis);
svg.append("g") // Append y-axis
.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") // Join our data
.data(nested_data)
.enter() // For each value do the following
.append("rect")
.attr("class", "bar")
.attr("x", function(d) {
return x(d.key);
})
.attr("width", x.rangeBand())
.attr("y", function(d) {
return y(d.values);
})
.attr("height", function(d) {
return height - y(d.values);
});
}
您可以在此处找到一个可用的 plnkr,其代码为:http://plnkr.co/edit/Jin12g7dVdCq2eu46FnX?p=preview
关于javascript - D3 条形图故障排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37681473/
我有一个名为“members”的数据库表。分配给成员的是一个职位。 职位 来自部门。我有 Departments,然后是那些中的 Sub-Departments 和 Sub-Departments 中
我正在尝试为 Solr 搜索应用过滤器标记 Tagging_and_excluding_Filters . 挑战在于同时应用多个标记(对于单个页面上的多个选择选项)。例如 q=mainquery&fq
我知道这个问题已经被问过很多次了,我已经尝试了所有建议,并阅读了有关不同选择器等的所有内容,但没有任何对我有用 给出以下 HTML 片段: link
是否有直接的 LINQ 语法来查找集合 B 中不存在的集合 A 的成员?在 SQL 我会写这个 SELECT A.* FROM A LEFT JOIN B ON A.ID = B.ID WHERE B
我试图排除并在现有xpath中包括以下xpath,但不太确定如何做到这一点 //exclude -> //*[@id="ires"]/ol/li[6]/div/a[1]/img //include
我有 30 个站点,我需要在其中 24 个站点上回显某些内容。我怎样才能排除其他人?该代码不起作用,因为我认为它的逻辑是假的:) $currentsite = get_bloginfo('wpurl'
我需要对目标文件夹进行检查,并检查文件是否来自今天,并且超过5kb 下面的命令根据使用今天的日期存在的文件来提供bool值,但是我还要添加-gt5kb之类的排除项 我尝试使用-Exlcude,但不确定
我编入索引的Elasticsearch文档包含许多字段。我一直在使用match_all查询来获取结果。我想从match_all中排除一些字段,这可能吗? 最佳答案 在Elasticsearch中,您可
我正在为我的 DAO 编写一些测试,因为很多测试使用保存到我的数据库中的测试对象,所以我使用注释 @Before 和 @Before 创建了 setup() 和teardown() 方法@After
我编写了一个程序来解决以下问题: Implement a diffusion limited aggregation simulation on a toroid plane where seeds
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
很多时候我必须运行这个查询: select * from users where name is not null and name != '' 有没有更好的方法来做到这一点。我需要更多的性能,任何建
如果检测到某个操作系统,是否有一种简单的方法可以排除某些代码? 我设计了一个运行良好的网站(它是一个 sidescroller),当使用滚轮(向上/向下)时,它会左右滚动。但是,如果您使用的是 Mac
我应该如何排除“IN”子句中的值? $Graduates = "45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,6
很明显,如果一个 Mysql 表的全文索引包含一个出现在 50% 的数据行中的关键字,该关键字将被匹配查询忽略 因此,如果我有一个包含 50 个条目的全文索引“content”的表其中 27 个条目在
我有下面的循环。 我需要提取所有不包含字母 p 的名称 (lskey),但我的尝试不起作用。 for(var i = 0; i "); } } 如果有人能回答,我将不胜感激。 最佳答案 如此接
我正在尝试查找 FTP 服务器上根目录的总大小。但是,我无权访问根目录中的其中一个目录。 我想用这个函数对根目录的大小求和: size = 0 for filename in ftp.nlst("."
我有以下正则表达式来匹配 html 链接: 有点效果。除了不是真的。因为它在 编辑: 这将使它只抓取引号而不是 之后的所有内容 最佳答案 我认为您的正则表达式没有按照您的意愿行事。 这会非贪婪地捕
我在提出异常方面遇到困难,例如: import csv o = open('/home/foo/dummy.csv', 'r') # Empty file! reader = csv.reader(o
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我是一名优秀的程序员,十分优秀!