{
let day = weatherForecastPeriods.filter(d=>d.isDaytime);
let night = weatherForecastPeriods.filter(d=>!d.isDaytime);
let trace_scatterDay = {
x: weatherForecastPeriods.map(d=>d.name),
y: weatherForecastPeriods.map(d=>(d.isDaytime)?d.temperature:null),
mode: 'markers',
marker: { size: 12 },
type: 'scatter',
name: 'Day Time'
};
let trace_scatterNight = {
x: weatherForecastPeriods.map(d=>d.name),
y: weatherForecastPeriods.map(d=>(!d.isDaytime)?d.temperature:null),
mode: 'markers',
marker: { size: 10 },
type: 'scatter',
name: 'Night Time'
};
let trace_lineDay = {
x: day.map(d=>d.name),
y: day.map(d=>d.temperature),
mode: 'lines',
type: 'scatter',
showlegend: false,
hoverinfo:'skip',
name: 'Day'
};
let trace_lineNight = {
x: night.map(d=>d.name),
y: night.map(d=>d.temperature),
mode: 'lines',
type: 'scatter',
showlegend: false,
hoverinfo:'skip',
name: 'Night'
};
var data = [trace_scatterDay, trace_scatterNight, trace_lineDay, trace_lineNight];
var layout = {
title: `Weekly Weather at ${place}`,
xaxis: {
showgrid: false,
zeroline: false
},
yaxis: {
title: 'Temperature in °F',
showline: false
},
width: width
};
const div = DOM.element('div');
Plotly.newPlot(div, data, layout);
return div;
}