Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save fidelthomet/9450f52e089e17615b6c8987d968b701 to your computer and use it in GitHub Desktop.
Save fidelthomet/9450f52e089e17615b6c8987d968b701 to your computer and use it in GitHub Desktop.
sszvis embedd test
Jahr Herkunft Anzahl
1901 Schweizerinnen und Schweizer 108291
1901 Ausländerinnen und Ausländer 42010
1902 Schweizerinnen und Schweizer 110707
1902 Ausländerinnen und Ausländer 43034
1903 Schweizerinnen und Schweizer 112915
1903 Ausländerinnen und Ausländer 45804
1904 Schweizerinnen und Schweizer 115612
1904 Ausländerinnen und Ausländer 48448
1905 Schweizerinnen und Schweizer 117236
1905 Ausländerinnen und Ausländer 51641
1906 Schweizerinnen und Schweizer 118600
1906 Ausländerinnen und Ausländer 54683
1907 Schweizerinnen und Schweizer 120861
1907 Ausländerinnen und Ausländer 57038
1908 Schweizerinnen und Schweizer 122662
1908 Ausländerinnen und Ausländer 58060
1909 Schweizerinnen und Schweizer 125001
1909 Ausländerinnen und Ausländer 60040
1910 Schweizerinnen und Schweizer 126470
1910 Ausländerinnen und Ausländer 63622
1911 Schweizerinnen und Schweizer 129396
1911 Ausländerinnen und Ausländer 66129
1912 Schweizerinnen und Schweizer 131976
1912 Ausländerinnen und Ausländer 68486
1913 Schweizerinnen und Schweizer 133654
1913 Ausländerinnen und Ausländer 66978
1914 Schweizerinnen und Schweizer 136982
1914 Ausländerinnen und Ausländer 58885
1915 Schweizerinnen und Schweizer 142516
1915 Ausländerinnen und Ausländer 57210
1916 Schweizerinnen und Schweizer 148783
1916 Ausländerinnen und Ausländer 57290
1917 Schweizerinnen und Schweizer 156816
1917 Ausländerinnen und Ausländer 56377
1918 Schweizerinnen und Schweizer 159503
1918 Ausländerinnen und Ausländer 51918
1919 Schweizerinnen und Schweizer 161710
1919 Ausländerinnen und Ausländer 48441
1920 Schweizerinnen und Schweizer 161303
1920 Ausländerinnen und Ausländer 44996
1921 Schweizerinnen und Schweizer 161330
1921 Ausländerinnen und Ausländer 39912
1922 Schweizerinnen und Schweizer 161775
1922 Ausländerinnen und Ausländer 38514
1923 Schweizerinnen und Schweizer 164666
1923 Ausländerinnen und Ausländer 39383
1924 Schweizerinnen und Schweizer 168910
1924 Ausländerinnen und Ausländer 37809
1925 Schweizerinnen und Schweizer 172892
1925 Ausländerinnen und Ausländer 36435
1926 Schweizerinnen und Schweizer 178686
1926 Ausländerinnen und Ausländer 36273
1927 Schweizerinnen und Schweizer 184773
1927 Ausländerinnen und Ausländer 35840
1928 Schweizerinnen und Schweizer 194573
1928 Ausländerinnen und Ausländer 35903
1929 Schweizerinnen und Schweizer 203263
1929 Ausländerinnen und Ausländer 36939
1930 Schweizerinnen und Schweizer 211211
1930 Ausländerinnen und Ausländer 37856
1931 Schweizerinnen und Schweizer 219833
1931 Ausländerinnen und Ausländer 37645
1932 Schweizerinnen und Schweizer 225226
1932 Ausländerinnen und Ausländer 35468
1933 Schweizerinnen und Schweizer 230254
1933 Ausländerinnen und Ausländer 33789
1934 Schweizerinnen und Schweizer 278698
1934 Ausländerinnen und Ausländer 37166
1935 Schweizerinnen und Schweizer 281847
1935 Ausländerinnen und Ausländer 35310
1936 Schweizerinnen und Schweizer 284560
1936 Ausländerinnen und Ausländer 33152
1937 Schweizerinnen und Schweizer 287233
1937 Ausländerinnen und Ausländer 31693
1938 Schweizerinnen und Schweizer 293435
1938 Ausländerinnen und Ausländer 33544
1939 Schweizerinnen und Schweizer 302050
1939 Ausländerinnen und Ausländer 31934
1940 Schweizerinnen und Schweizer 305417
1940 Ausländerinnen und Ausländer 28609
1941 Schweizerinnen und Schweizer 309932
1941 Ausländerinnen und Ausländer 26599
1942 Schweizerinnen und Schweizer 314417
1942 Ausländerinnen und Ausländer 25304
1943 Schweizerinnen und Schweizer 320742
1943 Ausländerinnen und Ausländer 25077
1944 Schweizerinnen und Schweizer 326538
1944 Ausländerinnen und Ausländer 25141
1945 Schweizerinnen und Schweizer 333075
1945 Ausländerinnen und Ausländer 24306
1946 Schweizerinnen und Schweizer 340227
1946 Ausländerinnen und Ausländer 26944
1947 Schweizerinnen und Schweizer 344894
1947 Ausländerinnen und Ausländer 32193
1948 Schweizerinnen und Schweizer 349134
1948 Ausländerinnen und Ausländer 34434
1949 Schweizerinnen und Schweizer 353527
1949 Ausländerinnen und Ausländer 32476
1950 Schweizerinnen und Schweizer 357874
1950 Ausländerinnen und Ausländer 31699
1951 Schweizerinnen und Schweizer 362108
1951 Ausländerinnen und Ausländer 34152
1952 Schweizerinnen und Schweizer 367864
1952 Ausländerinnen und Ausländer 35761
1953 Schweizerinnen und Schweizer 372651
1953 Ausländerinnen und Ausländer 35893
1954 Schweizerinnen und Schweizer 378012
1954 Ausländerinnen und Ausländer 35032
1955 Schweizerinnen und Schweizer 380692
1955 Ausländerinnen und Ausländer 36659
1956 Schweizerinnen und Schweizer 380795
1956 Ausländerinnen und Ausländer 39694
1957 Schweizerinnen und Schweizer 381861
1957 Ausländerinnen und Ausländer 44488
1958 Schweizerinnen und Schweizer 384762
1958 Ausländerinnen und Ausländer 46480
1959 Schweizerinnen und Schweizer 386147
1959 Ausländerinnen und Ausländer 47933
1960 Schweizerinnen und Schweizer 384482
1960 Ausländerinnen und Ausländer 52791
1961 Schweizerinnen und Schweizer 380209
1961 Ausländerinnen und Ausländer 59113
1962 Schweizerinnen und Schweizer 376285
1962 Ausländerinnen und Ausländer 63895
1963 Schweizerinnen und Schweizer 372123
1963 Ausländerinnen und Ausländer 66967
1964 Schweizerinnen und Schweizer 368819
1964 Ausländerinnen und Ausländer 68811
1965 Schweizerinnen und Schweizer 366623
1965 Ausländerinnen und Ausländer 67242
1966 Schweizerinnen und Schweizer 364187
1966 Ausländerinnen und Ausländer 67346
1967 Schweizerinnen und Schweizer 361065
1967 Ausländerinnen und Ausländer 69529
1968 Schweizerinnen und Schweizer 357420
1968 Ausländerinnen und Ausländer 72735
1969 Schweizerinnen und Schweizer 353643
1969 Ausländerinnen und Ausländer 71474
1970 Schweizerinnen und Schweizer 348028
1970 Ausländerinnen und Ausländer 69944
1971 Schweizerinnen und Schweizer 342244
1971 Ausländerinnen und Ausländer 69925
1972 Schweizerinnen und Schweizer 335608
1972 Ausländerinnen und Ausländer 72039
1973 Schweizerinnen und Schweizer 327961
1973 Ausländerinnen und Ausländer 73616
1974 Schweizerinnen und Schweizer 322198
1974 Ausländerinnen und Ausländer 74063
1975 Schweizerinnen und Schweizer 319071
1975 Ausländerinnen und Ausländer 70542
1976 Schweizerinnen und Schweizer 315487
1976 Ausländerinnen und Ausländer 67512
1977 Schweizerinnen und Schweizer 313131
1977 Ausländerinnen und Ausländer 66504
1978 Schweizerinnen und Schweizer 309766
1978 Ausländerinnen und Ausländer 66681
1979 Schweizerinnen und Schweizer 306376
1979 Ausländerinnen und Ausländer 67845
1980 Schweizerinnen und Schweizer 303662
1980 Ausländerinnen und Ausländer 66956
1981 Schweizerinnen und Schweizer 299384
1981 Ausländerinnen und Ausländer 68787
1982 Schweizerinnen und Schweizer 294956
1982 Ausländerinnen und Ausländer 71384
1983 Schweizerinnen und Schweizer 290990
1983 Ausländerinnen und Ausländer 72662
1984 Schweizerinnen und Schweizer 289085
1984 Ausländerinnen und Ausländer 72408
1985 Schweizerinnen und Schweizer 286372
1985 Ausländerinnen und Ausländer 72712
1986 Schweizerinnen und Schweizer 284831
1986 Ausländerinnen und Ausländer 74042
1987 Schweizerinnen und Schweizer 281991
1987 Ausländerinnen und Ausländer 76051
1988 Schweizerinnen und Schweizer 279120
1988 Ausländerinnen und Ausländer 78240
1989 Schweizerinnen und Schweizer 275221
1989 Ausländerinnen und Ausländer 80680
1990 Schweizerinnen und Schweizer 271579
1990 Ausländerinnen und Ausländer 84773
1991 Schweizerinnen und Schweizer 269610
1991 Ausländerinnen und Ausländer 91265
1992 Schweizerinnen und Schweizer 267985
1992 Ausländerinnen und Ausländer 93503
1993 Schweizerinnen und Schweizer 264041
1993 Ausländerinnen und Ausländer 96857
1994 Schweizerinnen und Schweizer 261550
1994 Ausländerinnen und Ausländer 99298
1995 Schweizerinnen und Schweizer 259361
1995 Ausländerinnen und Ausländer 101465
1996 Schweizerinnen und Schweizer 257600
1996 Ausländerinnen und Ausländer 102048
1997 Schweizerinnen und Schweizer 256039
1997 Ausländerinnen und Ausländer 102555
1998 Schweizerinnen und Schweizer 255523
1998 Ausländerinnen und Ausländer 103550
1999 Schweizerinnen und Schweizer 255185
1999 Ausländerinnen und Ausländer 105519
2000 Schweizerinnen und Schweizer 255576
2000 Ausländerinnen und Ausländer 105404
2001 Schweizerinnen und Schweizer 255953
2001 Ausländerinnen und Ausländer 106089
2002 Schweizerinnen und Schweizer 255757
2002 Ausländerinnen und Ausländer 108801
2003 Schweizerinnen und Schweizer 255649
2003 Ausländerinnen und Ausländer 108879
2004 Schweizerinnen und Schweizer 254835
2004 Ausländerinnen und Ausländer 110142
2005 Schweizerinnen und Schweizer 255917
2005 Ausländerinnen und Ausländer 110892
2006 Schweizerinnen und Schweizer 259102
2006 Ausländerinnen und Ausländer 110960
2007 Schweizerinnen und Schweizer 261436
2007 Ausländerinnen und Ausländer 115379
2008 Schweizerinnen und Schweizer 262595
2008 Ausländerinnen und Ausländer 117904
2009 Schweizerinnen und Schweizer 265512
2009 Ausländerinnen und Ausländer 117394
2010 Schweizerinnen und Schweizer 268017
2010 Ausländerinnen und Ausländer 117451
2011 Schweizerinnen und Schweizer 269065
2011 Ausländerinnen und Ausländer 121017
2012 Schweizerinnen und Schweizer 270855
2012 Ausländerinnen und Ausländer 123157
2013 Schweizerinnen und Schweizer 272705
2013 Ausländerinnen und Ausländer 125870
2014 Schweizerinnen und Schweizer 275649
2014 Ausländerinnen und Ausländer 129134
2015 Schweizerinnen und Schweizer 279236
2015 Ausländerinnen und Ausländer 131168
(function(d3, sszvis,BEV002W0002_Entwicklung_nach_HerkunftParams) {
'use strict';
/* Configuration
----------------------------------------------- */
var config = {
// The path to the CSV file containing the data for this chart
dataPath: BEV002W0002_Entwicklung_nach_HerkunftParams.data,
// The title and description of this chart for visually impaired users
title: BEV002W0002_Entwicklung_nach_HerkunftParams.title,
description: BEV002W0002_Entwicklung_nach_HerkunftParams.description,
// Data column to use for the x-axis
xColumn: 'Jahr',
// Data column to use for the y-axis
yColumn: 'Anzahl',
// Data column to use for the values
cColumn:'Herkunft',
// The labels for the x and y-axis. Set to empty ('') to hide the label
yAxisLabel: '',
xAxisLabel: '',
// Number of ticks on the x- and y-axis. Replace null with a cardinal number to specify the number of ticks
xTicks: null,
yTicks: 5,
// Padding between legend and x-axis in pixels. The recommended default is 60px.
legendPadding: 60,
//View of the chart when interactivity is not available. Creates vertical lines for the x-ticks and does not render mouse interaction when true
fallback: false,
targetElement: BEV002W0002_Entwicklung_nach_HerkunftParams.id
};
if (sszvis.fallback.unsupported()) {
sszvis.fallback.render(config.targetElement);
return;
}
// This example works in much the same way as the twelve-category stacked area chart.
// Much of the code is similar, if not the same. For a detailed description of the
// process of rendering this type of chart, see the twelve-category example, sa-twelve.html
/* Shortcuts
----------------------------------------------- */
var xAcc = sszvis.fn.prop('year');
var yAcc = sszvis.fn.prop('value');
var cAcc = sszvis.fn.prop('category');
var originScale = d3.scale.ordinal()
.range(['#E67D73','#E6CF73']);
/* Application state
----------------------------------------------- */
var state = {
data: [],
timeExtent: [0, 0],
stackedData: [],
maxStacked: 0,
categories: [],
isMultiples: false,
highlightDate: new Date(),
highlightData: [],
totalHighlightValue: 0,
mouseYValue: 0
};
/* State transitions
----------------------------------------------- */
var actions = {
prepareState: function(data) {
state.data = data;
state.timeExtent = d3.extent(state.data, xAcc);
state.stackedData = sszvis.cascade()
.arrayBy(cAcc)
.apply(state.data)
.map(function(stack) {
return {
category: cAcc(stack[0]),
values: stack
};
});
var dateValues = sszvis.cascade()
.objectBy(sszvis.fn.compose(String, xAcc))
.apply(state.data);
state.maxValue = d3.max(state.data, yAcc);
state.maxStacked = d3.max(d3.values(dateValues), function(s) {
return d3.sum(s, yAcc);
});
state.maxStacked = d3.max([state.maxStacked,500000]);
state.categories = sszvis.fn.set(state.data, cAcc);
state.dates = sszvis.fn.set(state.data, xAcc);
actions.resetDate();
},
toggleMultiples: function(g) {
state.isMultiples = (g === 'Separiert');
render(state);
},
changeDate: function(xValue, yValue) {
var closest = findClosest(state.dates, xValue);
state.highlightDate = closest;
state.highlightData = state.stackedData.map(function(stack) {
return stack.values.filter(function(v) { return xAcc(v).toString() === closest.toString(); })[0];
});
state.totalHighlightValue = state.highlightData.reduce(function(m, v) {
return yAcc(v) + m;
}, 0);
state.mouseYValue = yValue;
render(state);
},
resetDate: function() {
var mostRecent = d3.max(state.data, xAcc);
actions.changeDate(mostRecent, 0);
}
};
/* Data initialization
----------------------------------------------- */
d3.csv(config.dataPath)
.row(function(d) {
return {
category: d[config.cColumn],
year: sszvis.parse.year(d[config.xColumn]),
value: sszvis.parse.number(d[config.yColumn])
};
})
.get(function(error, data) {
if (error) {
sszvis.loadError(error);
return;
}
actions.prepareState(data);
});
/* Render
----------------------------------------------- */
function render(state) {
// the color scale for the layers, based on the number of categories
var cScale = originScale;//state.categories.length > 6 ? sszvis.color.qual12() : sszvis.color.qual6();
cScale.domain(state.categories);
var colorLegend = flexibleLegend(cScale, state.categories.length)
var bounds = sszvis.bounds({ top: 20, bottom: config.legendPadding + legendHeight(colorLegend, state.categories.length), width: d3.select("#sszvis-chart-1").node().getBoundingClientRect().width})
// Scales
var xScale = d3.time.scale()
.domain(state.timeExtent)
.range([0, bounds.innerWidth]);
var yScale = d3.scale.linear()
.domain([0, state.maxStacked])
.range([bounds.innerHeight, 10]);
// Layers
var chartLayer = sszvis.createSvgLayer(config.targetElement, bounds, {
title: config.title,
description: config.description
})
.datum(state.stackedData);
var htmlLayer = sszvis.createHtmlLayer(config.targetElement);
// Components
var stackedArea = sszvis.component.stackedArea()
.key(sszvis.fn.prop('category'))
.valuesAccessor(sszvis.fn.prop('values'))
.x(sszvis.fn.compose(xScale, xAcc))
.yAccessor(yAcc)
.yScale(yScale)
.fill(sszvis.fn.compose(cScale, cAcc));
var topValue;
topValue = yScale(state.totalHighlightValue);
var rangeRuler = sszvis.annotation.rangeRuler()
.top(topValue)
.bottom(bounds.innerHeight)
.x(xScale(state.highlightDate))
.y0(function(d) {
return yScale(d.y0);
})
.y1(function(d) {
return yScale(d.y0 + d.y);
})
.label(function(d) {
return yAcc(d).toString();
})
.total(state.totalHighlightValue)
.flip(function(d) {
return xScale(state.highlightDate) >= 0.5 * bounds.innerWidth;
});
var tooltipText = sszvis.svgUtils.modularText.html()
.bold(sszvis.fn.compose(sszvis.format.number, yAcc))
.plain(cAcc);
var rangeTooltip = sszvis.annotation.tooltip()
.header(tooltipText)
.orientation(function(d) {
return xScale(state.highlightDate) >= 0.5 * bounds.innerWidth ? 'right' : 'left';
})
.renderInto(htmlLayer)
.visible(true);
var rangeFlag = sszvis.annotation.rangeFlag()
.x(xScale(state.highlightDate))
.y0(function(d) {
return yScale(d.y0);
})
.y1(function(d) {
return yScale(d.y0 + d.y);
});
var xAxisTicks = xScale.ticks(config.xTicks)
.concat(state.highlightDate);
var xAxis = sszvis.axis.x.time()
.scale(xScale)
.orient('bottom')
.tickValues(xAxisTicks)
.title(config.xAxisLabel)
.highlightTick(function(d) {
return sszvis.fn.stringEqual(d, state.highlightDate);
});
var yAxisTicks = yScale.ticks(config.yTicks);
var yAxis = sszvis.axis.y()
.scale(yScale)
.orient('right')
.title(config.yAxisLabel)
.tickLength(config.fallback ? bounds.innerWidth : null)
.tickValues(yAxisTicks);
// Rendering
chartLayer.selectGroup('areachart')
.datum(function() {
// Reverse the data order
return state.stackedData.reduce(function(m, d) {
return [d].concat(m);
}, []);
})
.call(stackedArea);
chartLayer.selectGroup('xAxis')
.attr('transform', sszvis.svgUtils.translateString(0, bounds.innerHeight))
.call(xAxis);
chartLayer.selectGroup('yAxis')
.call(yAxis)
.transition()
.call(sszvis.transition)
.style('opacity', Number(!state.isMultiples));
chartLayer.selectGroup('colorLegend')
.attr('transform', sszvis.svgUtils.translateString(0, bounds.innerHeight + config.legendPadding))
.call(colorLegend);
if (!config.fallback) {
chartLayer.selectGroup('highlight')
.datum(state.highlightData)
.call(rangeRuler);
}
var flagGroup = chartLayer.selectGroup('flag')
.datum(state.highlightData.filter(function(v) {
return v.y0 < state.mouseYValue && v.y0 + v.y > state.mouseYValue;
}))
.call(rangeFlag);
flagGroup.selectAll('[data-tooltip-anchor]').call(rangeTooltip);
// Interaction
if (!config.fallback) {
var interactionLayer = sszvis.behavior.move()
.xScale(xScale)
.yScale(yScale)
.on('move', actions.changeDate)
.on('end', actions.resetDate);
chartLayer.selectGroup('interaction')
.call(interactionLayer)
}
}
/* Helper functions
----------------------------------------------- */
function findClosest(data, datum) {
var i = d3.bisectLeft(data, datum, 1);
var d0 = data[i - 1];
var d1 = data[i] || d0;
return datum - d0 > d1 - datum ? d1 : d0;
}
function flexibleLegend(scale, numEntries) {
var legend = sszvis.legend.ordinalColorScale().scale(scale)
if (numEntries <= 4) {
legend.horizontalFloat(true)
} else {
legend
.rows(Math.ceil(numEntries / 2))
.orientation('vertical');
};
return legend;
}
function legendHeight(legend, numEntries) {
return legend.rowHeight() * Math.ceil(numEntries / 2);
};
}(d3, sszvis,BEV002W0002_Entwicklung_nach_HerkunftParams));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment