Published
Edited
Apr 22, 2020
Importers
Insert cell
Insert cell
Insert cell
Insert cell
data = {

const allData = (d3.csvParse(await FileAttachment("blackbody_vs_real_emission@1.csv").text(), d3.autoType))
.map(({ SpectralPower, Wavelength, Material}) => ({Material, iso: Material, Property_name: "Emissivity Power", Property: SpectralPower, Wavelength: Wavelength }))

return [
allData.filter(({ iso }) => iso === 'Blackbody'),
allData.filter(({ iso }) => iso === 'Real surface')

]

}
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
/*xScale = {
var temp = [];
data.forEach(d=>d.forEach(e=>temp.push(e.Wavelength)))
const startWavelength = 0 //d3.min(temp);
const endWavelength = 8 //d3.max(temp);
return d3.scaleLinear( [ 0, 8])
//return d3.scaleLog().domain(d3.extent(temp)).range([margin.left, width - margin.right])
} */
Insert cell
xScale = {
var temp = []
data.forEach(d=>d.forEach(e=>temp.push(e.Wavelength)))
const startWavelength = d3.min(temp);
const endWavelength = d3.max(temp);
return d3.scaleLinear(
[ startWavelength, endWavelength ],
[ margin.left, width - margin.right ]
)
}
Insert cell
yScale = {
return d3.scaleLinear(
[ 0, 7 ],
[ height - margin.bottom, margin.top ]
)
}
Insert cell
xAxis = d3.axisBottom(xScale)
Insert cell
yAxis = d3.axisLeft(yScale)
Insert cell
line = d3.line()
.x(d => xScale(d.Wavelength))
.y(d => yScale(d.Property))
.curve(d3.curveBasis)
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more