Skip to content

Commit 9ffa8a7

Browse files
committed
single bar chart on adv search
1 parent 43a261e commit 9ffa8a7

File tree

2 files changed

+21
-13
lines changed

2 files changed

+21
-13
lines changed

src/Components/SingleBarChart.js

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
import React, { useEffect, useState, useRef } from 'react'
2-
import { select } from 'd3'
2+
import { select, scaleBand } from 'd3'
33

44
function SingleBarChart(props){
55
const svgRef = useRef()
6-
76

87
useEffect(() => {
98
console.log("RENDERING SINGLE BAR", props.genderTotals)
@@ -12,13 +11,23 @@ function SingleBarChart(props){
1211

1312
const colors = ["#BC8F00","#6200F8","#00BCA1"]
1413

14+
const xScale = scaleBand()
15+
.domain([0,100])
16+
.range([0, 100])
17+
// .padding(0.5)
18+
let percentSoFar = 0
19+
let genderTotalCum = []
20+
props.genderTotals.forEach(percent => {
21+
genderTotalCum.push({percent: percent, percentSoFar: percentSoFar})
22+
percentSoFar+=percent
23+
})
1524
svg.selectAll("rect")
16-
.data(props.genderTotals)
25+
.data(genderTotalCum)
1726
.join("rect")
1827
.attr("fill", function(d, i) {return colors[i]; })
19-
.attr("width", "100%")
28+
.attr("width", (value) => value.percent + "%")
2029
.attr("height", "30px")
21-
.attr("x", (value) => value)
30+
.attr("x", (value) => value.percentSoFar + "%")
2231
.attr("y", "30px")
2332
}, [props.genderTotals])
2433

src/Views/AdvancedSearchView.js

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ function AdvancedSearchView(){
2323

2424
function onSubmit(e){
2525
e.preventDefault()
26-
console.log("hello", selectedSnapshot, selectedCitizenship, selectedWikiProject, selectedYear )
2726
let formState = {}
2827
if (selectedSnapshot !== "Enter Date - Latest"){
2928
formState.snapshot = selectedSnapshot
@@ -48,7 +47,6 @@ function AdvancedSearchView(){
4847
// let url = `http://localhost:5000/v1/gender/gap/${formState.snapshot ? formState.snapshot : "latest"}/${selectedWikipediaHumanType}/properties?`
4948
// let url = `https://humaniki-staging.wmflabs.org/api/v1/gender/gap/${formState.snapshot ? formState.snapshot : "latest"}/${selectedWikipediaHumanType}/properties?`
5049
let url = `http://127.0.0.1:5000/v1/gender/gap/${formState.snapshot ? formState.snapshot : "latest"}/${selectedWikipediaHumanType}/properties?`
51-
console.log("formState", url, formState)
5250
if (formState.year) {
5351
url = url + `&date_of_birth=${formState.year}`
5452
}
@@ -64,7 +62,6 @@ function AdvancedSearchView(){
6462
if (formState.year || formState.wikiProject || formState.citizenship) {
6563
url = url + "&label_lang=en"
6664
}
67-
console.log("URL", url)
6865
return seturl(url)
6966
}
7067

@@ -88,8 +85,6 @@ function AdvancedSearchView(){
8885
const columns = []
8986
function processFetchData(data){
9087
let tableArr = []
91-
console.log("processing fetch data", data.metrics, data.meta, data.metrics.item)
92-
9388
//create columns
9489
columns.push({dataField: "index", text: "Index", sort: true})
9590
columns.push({dataField: "total", text: "Total", sort: true})
@@ -102,7 +97,6 @@ function AdvancedSearchView(){
10297
columns.push({dataField: "men", text: "men", sort:true})
10398
columns.push({dataField: "menPercent", text: "men Percent", sort:true, formatter: percentFormatter})
10499
for (let genderId in data.meta.bias_labels) {
105-
console.log("GenderID", genderId)
106100
if (genderId !== "6581072" && genderId !== "6581097") {
107101
let obj = {
108102
dataField: data.meta.bias_labels[genderId],
@@ -124,7 +118,6 @@ function AdvancedSearchView(){
124118
// configure data
125119
data.metrics.forEach((obj, index) => {
126120
let tableObj = {}
127-
128121
tableObj.key = index
129122
tableObj.index = Object.values(obj["item_label"]).join()
130123
tableObj.total = Object.values(obj.values).reduce((a, b) => a + b)
@@ -137,7 +130,13 @@ function AdvancedSearchView(){
137130
tableObj[label] = obj["values"][value.toString()]
138131
tableObj[label + "Percent"] = obj["values"][value.toString()]/tableObj["total"]*100
139132
})
140-
tableObj.gap = <SingleBarChart genderTotals={[tableObj.men, tableObj.women]} />
133+
let genderTotalsArr = []
134+
console.log("HELLO", tableObj)
135+
136+
console.log("HERE",Object.values(data.meta.bias_labels).map(gender => gender + "Percent"))
137+
Object.values(data.meta.bias_labels).map(gender => gender + "Percent").map(g => genderTotalsArr.push(tableObj[g]))
138+
console.log("gender total arr", genderTotalsArr)
139+
tableObj.gap = <SingleBarChart genderTotals={genderTotalsArr} />
141140
tableArr.push(tableObj)
142141
})
143142

0 commit comments

Comments
 (0)