Skip to content

Instantly share code, notes, and snippets.

@gelicia
Created September 16, 2013 02:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gelicia/6576221 to your computer and use it in GitHub Desktop.
Save gelicia/6576221 to your computer and use it in GitHub Desktop.
sparc menu
{"description":"sparc menu","endpoint":"","display":"svg","public":true,"require":[],"fileconfigs":{"inlet.js":{"default":true,"vim":false,"emacs":false,"fontSize":12},"menu.json":{"default":true,"vim":false,"emacs":false,"fontSize":12},"_.md":{"default":true,"vim":false,"emacs":false,"fontSize":12},"config.json":{"default":true,"vim":false,"emacs":false,"fontSize":12}},"fullscreen":false,"play":false,"loop":false,"restart":false,"autoinit":true,"pause":true,"loop_type":"pingpong","bv":false,"nclones":15,"clone_opacity":0.4,"duration":3000,"ease":"linear","dt":0.01,"thumbnail":"http://i.imgur.com/OwFgepP.png","controls":{}}
//https://github.com/enjalot/sparcscraps
//using scrapy http://doc.scrapy.org/en/0.18/intro/tutorial.html
//to scrape http://sparcsf.org/medicine/flowers
var svg = d3.select("svg")
var priceTags = ['pre roll', 'gram', 'eighth', 'quarter', 'ounce'];
var strains = ['Sativa', 'Sativa > Indica', 'Indica > Sativa', 'Indica', 'General Mixed'];
var straincolor = d3.scale.ordinal()
.domain(strains)
.range([
"#E9AC11",
"#DD1676",
"#9017D5",
"#168A11",
"#727272",
])
var data = tributary.menu;
data.sort(function(a,b) {
return a.thc - b.thc;
})
var min = 0;
var maxThc = d3.max(data, function(d) { return d.thc });
var maxPrice = d3.max(data, function(d) { return d3.max(d.prices) });
var color = d3.scale.category20b()
.domain(data.map(function(d) { return d.name}))
var yscale = d3.scale.linear()
.domain([0, maxThc])
.range([400, 0])
var xscale = d3.scale.linear()
.domain([0, maxPrice])
.range([0, 400]);
var line = d3.svg.line()
.x(function(d,i) {
return xscale(i);
})
.y(function(d,i) {
return yscale(d);
})
var flowers = svg.selectAll("g.flower")
.data(data)
.enter()
.append("g").classed("flower", true)
.attr({
transform: function(d,i) {
var x = 0;
var y = 50 + yscale(d.thc)
return "translate(" + [x,y] + ")"
},
fill: function(d,i) {return straincolor(d.strain) },
//stroke: function(d,i) {return color(d.name) },
title: function(d,i){
var title = d.name;
if(d.thc >= 0) title += " thc: " + d.thc + "%"
if(d.cbd >= 0) title += " cbd:" + d.cbd + "%"
return title
}
})
flowers.selectAll("circle.price")
.data(function(d) { return d.prices })
.enter()
.append("circle")
.attr({
cx: function(d,j) { return 50 + xscale(d) ; },
r: 5,
title: function(d,j) {
var title = priceTags[j]
if(d >= 0)
title += ": $" + d
return title
}
}).style("display", function(d) {
if(d >= 0) return
return "none"
})
$("g").tipsy({gravity: 'nw', offset: 10})
$("circle").tipsy({gravity: 's'})
[{"prices": [9, 16, 45, 85, 290], "strain": "Sativa", "thc": 16, "name": "Green Dragon", "cbd": -1},
{"prices": [9, -1, -1, 70, 240], "strain": "Sativa", "thc": 15, "name": "Green Dragon (GH)", "cbd": 1},
{"prices": [-1, -1, -1, 40, -1], "strain": "Sativa", "thc": 16, "name": "Green Dragon Shake", "cbd": -1},
{"prices": [-1, 14, -1, -1, 260], "strain": "Sativa", "thc": 16, "name": "Sour Pineapple", "cbd": -1},
{"prices": [-1, 18, 55, -1, -1], "strain": "Sativa", "thc": 17, "name": "Jack Herer", "cbd": -1},
{"prices": [13, 18, 55, -1, -1], "strain": "Sativa", "thc": 18, "name": "Casey Jones", "cbd": -1},
{"prices": [-1, -1, -1, 60, -1], "strain": "Sativa", "thc": 14, "name": "Pineapple Thai (OD)", "cbd": -1},
{"prices": [9, 16, -1, -1, -1], "strain": "Sativa > Indica", "thc": 25, "name": "OG Kush", "cbd": -1},
{"prices": [9, -1, -1, 70, 240], "strain": "Sativa > Indica", "thc": 19, "name": "OG Kush (GH)", "cbd": 1},
{"prices": [-1, -1, 45, -1, -1], "strain": "Sativa > Indica", "thc": 9, "name": "Purple Trident CBD", "cbd": 7},
{"prices": [13, 18, 55, -1, -1], "strain": "Sativa > Indica", "thc": 19, "name": "Dutch Crunch", "cbd": -1},
{"prices": [7, 16, 45, -1, -1], "strain": "Sativa > Indica", "thc": 19, "name": "White Lucy", "cbd": -1},
{"prices": [-1, 16, 45, -1, -1], "strain": "Sativa > Indica", "thc": 5, "name": "True Blueberry x OG Kush (OD)", "cbd": 12},
{"prices": [-1, 14, 35, 65, 260], "strain": "Sativa > Indica", "thc": 13, "name": "White Russian ", "cbd": -1},
{"prices": [-1, 14, 35, 65, 260], "strain": "Sativa > Indica", "thc": 14, "name": "Standard Sour Diesel ", "cbd": 1},
{"prices": [-1, -1, -1, 70, 240], "strain": "Indica > Sativa", "thc": 11, "name": "Blueberry (GH)", "cbd": -1},
{"prices": [-1, 18, 55, -1, 340], "strain": "Indica > Sativa", "thc": 15, "name": "Blackberry Kush", "cbd": 17},
{"prices": [9, 16, 45, 85, 290], "strain": "Indica > Sativa", "thc": 22, "name": "Blue Dream", "cbd": -1},
{"prices": [-1, -1, -1, 70, 240], "strain": "Indica > Sativa", "thc": 17, "name": "Blue Dream (GH)", "cbd": 1},
{"prices": [-1, 18, 55, -1, -1], "strain": "Indica > Sativa", "thc": -1, "name": "Bubba Kush Reserve", "cbd": -1},
{"prices": [7, 14, 35, -1, -1], "strain": "Indica > Sativa", "thc": 17, "name": "Grand AK", "cbd": -1},
{"prices": [-1, -1, -1, 50, -1], "strain": "Indica > Sativa", "thc": 16, "name": "Cheese Quake (OD)", "cbd": -1},
{"prices": [-1, 16, 45, 85, -1], "strain": "Indica > Sativa", "thc": 18, "name": "Chiesel", "cbd": -1},
{"prices": [-1, 16, 45, -1, -1], "strain": "Indica > Sativa", "thc": 11, "name": "CannaT SR01 CBD", "cbd": 8},
{"prices": [-1, 14, 35, -1, -1], "strain": "Indica > Sativa", "thc": -1, "name": "Purple Cheese", "cbd": -1},
{"prices": [7, 14, 35, 65, 260], "strain": "Indica > Sativa", "thc": 18, "name": "Cheese Quake", "cbd": -1},
{"prices": [-1, 16, 45, -1, -1], "strain": "Indica > Sativa", "thc": 21, "name": "Crystal", "cbd": -1},
{"prices": [-1, -1, -1, 70, 240], "strain": "Indica > Sativa", "thc": 4, "name": "Remus (GH) (CBD)", "cbd": 12},
{"prices": [-1, -1, 55, -1, -1], "strain": "Indica", "thc": 16, "name": "Grandaddy Purple", "cbd": -1},
{"prices": [-1, 18, 55, -1, -1], "strain": "Indica", "thc": 23, "name": "Skyhash", "cbd": -1},
{"prices": [-1, -1, -1, 60, -1], "strain": "Indica", "thc": 9, "name": "Omrita Rx3 CBD (GH)", "cbd": 9},
{"prices": [9, 16, 45, 85, 290], "strain": "Indica", "thc": 21, "name": "Romulan", "cbd": -1},
{"prices": [-1, -1, -1, 70, 240], "strain": "Indica", "thc": 16, "name": "Romulan (GH)", "cbd": 1},
{"prices": [-1, 14, 35, 65, 260], "strain": "Indica", "thc": 18, "name": "Pinot Noir (OD)", "cbd": -1},
{"prices": [-1, 7, 9, 11, 13], "strain": "General Mixed", "thc": -1, "name": "Assorted Joints", "cbd": -1}]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment