Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@mdcscry
Last active August 29, 2015 14:12
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 mdcscry/7bb89480b28f189fafd3 to your computer and use it in GitHub Desktop.
Save mdcscry/7bb89480b28f189fafd3 to your computer and use it in GitHub Desktop.
VeggieBurst 2014

Sunburst of my seed grown 2014 garden. I'm a High Plains gardener in Boulder, Colorado. We get only 20 inches of rain per year. I have a fully irrigated 9 bed garden on the east side of my south facing house. This is garden number fourteen for me. My first in 2001 was in Lafayette, Colorado. I planted in Lafayette in 2011 and moved to Boulder. I harvested a late season container salad garden in 2011. Since 2011 I've been building out this new patch. Seed sewing and growing log found at PoppySeed. Garden-of-eatin has limited posting record of the gardens since 2004. I'm a reticent blogger at best, but a 2014 review is in progress.

Other viz include:
Veggie 2014 Show Reel
VeggieCirclePack 2014

<!DOCTYPE html>
<meta charset="utf-8">
<title>Bean Burst</title>
<meta name="description" content="Bean Burst.">
<style>
path {
stroke: #0af;
stroke-width: 1.5;
cursor: pointer;
}
text {
font: .8em sans-serif;
cursor: pointer;
stroke: #222;
}
body {
width: 100%;
margin: 0 auto;
}
h1 {
text-align: center;
margin: 1em 0;
}
p#intro {
text-align: center;
margin: 1em 0;
}
</style>
<Div style="position:absolute;left:20;top:20;width:15%;color:black;font-size:1em;">
<b>VeggieBurst 2014</b><br><a href=https://www.jasondavies.com/coffee-wheel/>Jason Davies<br>D3 example</a>
</DIV>
<div id="vis" width="100%;"></div>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script>
var width = window.innerWidth/1.1,
height = window.innerHeight/1.1,
radius = height ,
x = d3.scale.linear().range([0, 2 * Math.PI]),
y = d3.scale.pow().exponent(1.3).domain([0, 1]).range([0, radius]),
padding = 10,
duration = 1000;
var div = d3.select("#vis");
var color = d3.scale.category20();
//div.select("img").remove();
var vis = div.append("svg")
.attr("width", width + padding * 2)
.attr("height", height*2 + padding * 2)
.append("g")
.attr("transform", "translate(" +
[(radius)*1.05, (radius)] + ")");
div.append("p")
.attr("id", "intro")
.text("Click to zoom!");
var partition = d3.layout.partition()
.sort(null)
.value(function(d) { return 5.8 - d.depth; });
var arc = d3.svg.arc()
.startAngle(function(d) { return Math.max(0, Math.min(2 * Math.PI, x(d.x))); })
.endAngle(function(d) { return Math.max(0, Math.min(2 * Math.PI, x(d.x + d.dx))); })
.innerRadius(function(d) { return Math.max(0, d.y ? y(d.y) : d.y); })
.outerRadius(function(d) { return Math.max(0, y(d.y + d.dy)); });
window.addEventListener("resize", function(){ console.log("resize registered");
vis.attr("width", window.innerWidth/1.1)
.attr("height", window.innerHeight/1.1);
w = window.innerWidth/1.1,
h = window.innerHeight/1.1;
console.log("h=" + h);
launchFullScreen(vis);
});
d3.json("veggieflare_reduced.json", function(error, json) {
var nodes = partition.nodes({children: json});
var path = vis.selectAll("path").data(nodes);
path.enter().append("path")
.attr("id", function(d, i) { return "path-" + i; })
.attr("d", arc)
.attr("fill-rule", "evenodd")
.style("fill", function(d) { return color((d.children ? d : d.parent).name); })
.on("click", click);
var text = vis.selectAll("text").data(nodes);
var textEnter = text.enter().append("text")
.style("fill-opacity", 1)
// .style("fill", function(d) { return color((d.children ? d : d.parent).name); })
.style("fill", function(d) {
return brightness(d3.rgb(colour(d))) < 125 ? "#eee" : "#000";
})
.attr("text-anchor", function(d) {
return x(d.x + d.dx / 2) > Math.PI ? "end" : "start";
})
.attr("dy", ".2em")
.attr("transform", function(d) {
var multiline = (d.name || "").split(" ").length > 1,
angle = x(d.x + d.dx / 2) * 180 / Math.PI - 90,
rotate = angle + (multiline ? -.0 : 0);
return "rotate(" + rotate + ")translate(" + (y(d.y) + padding) + ")rotate(" + (angle > 90 ? -180 : 0) + ")";
})
.on("click", click);
textEnter.append("tspan")
.attr("x", 0)
.text(function(d) { return d.depth ? d.name.split(" ")[0] : ""; });
textEnter.append("tspan")
.attr("x", 0)
.attr("dy", ".1em")
.text(function(d) { return d.depth ? d.name.split(" ")[1] || "" : ""; });
function click(d) {
path.transition()
.duration(duration)
.attrTween("d", arcTween(d));
// Somewhat of a hack as we rely on arcTween updating the scales.
text.style("visibility", function(e) {
return isParentOf(d, e) ? null : d3.select(this).style("visibility");
})
.transition()
.duration(duration)
.attrTween("text-anchor", function(d) {
return function() {
return x(d.x + d.dx / 2) > Math.PI ? "end" : "start";
};
})
.attrTween("transform", function(d) {
var multiline = (d.name || "").split(" ").length > 1;
return function() {
var angle = x(d.x + d.dx / 2) * 180 / Math.PI - 90,
rotate = angle + (multiline ? -.5 : 0);
return "rotate(" + rotate + ")translate(" + (y(d.y) + padding) + ")rotate(" + (angle > 90 ? -180 : 0) + ")";
};
})
.style("fill-opacity", function(e) { return isParentOf(d, e) ? 1 : 1e-6; })
.each("end", function(e) {
d3.select(this).style("visibility", isParentOf(d, e) ? null : "hidden");
});
}
});
function isParentOf(p, c) {
if (p === c) return true;
if (p.children) {
return p.children.some(function(d) {
return isParentOf(d, c);
});
}
return false;
}
function colour(d) {
if (d.children) {
// There is a maximum of two children!
var colours = d.children.map(colour),
a = d3.hsl(colours[0]),
b = d3.hsl(colours[1]);
// L*a*b* might be better here...
return d3.hsl((a.h + b.h) / 1.2, a.s * 1.8, a.l / 1.15);
}
return d.colour || "#fff";
}
// Interpolate the scales!
function arcTween(d) {
var my = maxY(d),
xd = d3.interpolate(x.domain(), [d.x, d.x + d.dx]),
yd = d3.interpolate(y.domain(), [d.y, my]),
yr = d3.interpolate(y.range(), [d.y ? 20 : 0, radius]);
return function(d) {
return function(t) { x.domain(xd(t)); y.domain(yd(t)).range(yr(t)); return arc(d); };
};
}
function maxY(d) {
return d.children ? Math.max.apply(Math, d.children.map(maxY)) : d.y + d.dy;
}
// http://www.w3.org/WAI/ER/WD-AERT/#color-contrast
function brightness(rgb) {
return rgb.r * .299 + rgb.g * .587 + rgb.b * .114;
}
launchFullScreen(vis);
</script>
[
{
"name": "Brassica",
"children": [
{ "name": "CavoloBroccoloSpigariello", "size": 31 },
{ "name": "PieracicabaOPCalabrese", "size": 31 },
{ "name": "FalstaffPurpleBrussels", "size": 31 },
{ "name": "Igloo", "size": 31 },
{ "name": "KaleCavoloNeroakaLacinato", "size": 31 },
{ "name": "RedRussian", "size": 31 },
{ "name": "Scotch", "size": 31 },
{ "name": "AzureStarKohlrabi", "size": 31 },
{ "name": "BrocolliRaab", "size": 31 },
{ "name": "SharakuKomatsu", "size": 31 },
{ "name": "PurpleRapaMixGenePool", "size": 31 }
]},
{
"name": "Celery",
"children": [
{ "name": "GiantRedRe-Selection", "size": 31 },
{ "name": "Tendercrisp", "size": 31 },
{ "name": "Tango", "size": 31 },
{ "name": "D_elne", "size": 31 },
{ "name": "GoldenSpartan", "size": 31 },
{ "name": "Redventure", "size": 31 },
{ "name": "Conquistador", "size": 31 },
{ "name": "DoratoGigante", "size": 31 },
{ "name": "VerdePascal", "size": 31 },
{ "name": "PeppermintStickSeeds", "size": 31 },
{ "name": "Ventura", "size": 31 },
{ "name": "Redventure", "size": 31 },
{ "name": "TallUtah", "size": 31 }
]},
{
"name": "SpinachBeetsChard",
"children": [
{ "name": "BrightLightsChard", "size": 31 },
{ "name": "FordhookGiant", "size": 31 },
{ "name": "Touchstone Gold Beet ", "size": 31 },
{ "name": "Early Blood Turnip ", "size": 31 },
{ "name": "Early Wonder Beat", "size": 31 },
{ "name": "Bloomsdale", "size": 31 }
]},
{
"name": "Radish",
"children": [
{ "name": "Bartender", "size": 31 },
{ "name": "CherryBelle", "size": 31 },
{ "name": "EasterEgg", "size": 31 },
{ "name": "Sparkler", "size": 31 },
{ "name": "Miyashige", "size": 31 },
{ "name": "Watermelon", "size": 31 },
{ "name": "LongBlackSpanish", "size": 31 }
]},
{
"name": "Pea",
"children": [
{ "name": "PetitePoisPrecoville", "size": 31 },
{ "name": "SugarSnap", "size": 31 },
{ "name": "OregonSugarPodII", "size": 31 },
{ "name": "Frosty", "size": 31 },
{ "name": "CoralShellPeas", "size": 31 },
{ "name": "OregonSugarPodII", "size": 31 }
]},
{
"name": "Chicory&Endive",
"children": [
{ "name": "BiancadiBergamo", "size": 31 },
{ "name": "PandiZucchero", "size": 31 },
{ "name": "RossadiTreviso", "size": 31 },
{ "name": "OrchideaRossa", "size": 31 },
{ "name": "PallaRossaPrecoce", "size": 31 },
{ "name": "VariegatadiLusia", "size": 31 },
{ "name": "VerigatadiCastelfranco", "size": 31 },
{ "name": "VariegatadiChioggia", "size": 31 },
{ "name": "Bubikobf", "size": 31 },
{ "name": "BiondaaCuorePieno", "size": 31 },
{ "name": "Louviers", "size": 31 },
{ "name": "CuordOro", "size": 31 },
{ "name": "Castelfranco", "size": 31 }
]},
{
"name": "Greens",
"children": [
{ "name": "Roquette(Arugula)", "size": 31 },
{ "name": "CornMache", "size": 31 },
{ "name": "WinterDensityBibb", "size": 31 },
{ "name": "Tango", "size": 31 },
{ "name": "CardinaleBatavian", "size": 31 },
{ "name": "RedVelvet", "size": 31 },
{ "name": "MarvelofFourSeasons", "size": 31 },
{ "name": "Forellenschluss", "size": 31 },
{ "name": "Tatsoi", "size": 31 },
{ "name": "RubyStreaks(Mustard)", "size": 31 }
]},
{
"name": "Other",
"children": [
{ "name": "Red Amaranth", "size": 31 },
{ "name": "Purple of Romanga", "size": 31 },
{ "name": "FalstaffPurpleBrussels", "size": 31 },
{ "name": "(Kulli)BlackIncanCorn", "size": 31 },
{ "name": "RosaBianca", "size": 31 },
{ "name": "PintungLong", "size": 31 },
{ "name": "JingOrangeOkra", "size": 31 },
{ "name": "RedBurgundy", "size": 31 },
{ "name": "PinkOkra", "size": 31 },
{ "name": "PurpleDeMilpa", "size": 31 }
]},
{
"name": "Squash",
"children": [
{ "name": "Ornamental", "children": [
{ "name": "JapaneseNestEggGourd", "size": 31 },
{ "name": "TennesseeDancingGourd", "size": 31 },
{ "name": "SnakeGourd", "size": 31 }
]},
{ "name": "Summer", "children": [
{ "name": "Lemon", "size": 31 },
{ "name": "Tromboncino", "size": 31 },
{ "name": "StriatodItalia", "size": 31 },
{ "name": "RugosaFriulana", "size": 31 }
]},
{ "name": "Winter", "children": [
{ "name": "FutsuBlack", "size": 31 },
{ "name": "RedKuri", "size": 31 },
{ "name": "BlueKuri", "size": 31 },
{ "name": "UchikiKuri", "size": 31 },
{ "name": "BurgessButtercup", "size": 31 },
{ "name": "SmallSugar", "size": 31 },
{ "name": "VifDtampes", "size": 31 },
{ "name": "Jahrrdale", "size": 31 },
{ "name": "RedWartyThing", "size": 31 },
{ "name": "MusqueedeProvence", "size": 31 },
{ "name": "Jacko'Lantern", "size": 31 },
{ "name": "Kikuza", "size": 31 },
{ "name": "QueenslandBlue", "size": 31 }
]}
]
},
{
"name": "Carrot",
"children": [
{ "name": "Red-Samurai", "size": 31 },
{ "name": "Purple-Sun", "size": 31 },
{ "name": "Yellowstone", "size": 31 },
{ "name": "Snow-White", "size": 31 },
{ "name": "White-Satin", "size": 31 },
{ "name": "Purple-68", "size": 31 },
{ "name": "Rotild", "size": 31 },
{ "name": "Starica", "size": 31 },
{ "name": "Dragon", "size": 31 },
{ "name": "San-Valerio", "size": 31 },
{ "name": "Touchon", "size": 31 },
{ "name": "St.Valery", "size": 31 },
{ "name": "Rainbow-Blend", "size": 31 },
{ "name": "Chablis-Yellow", "size": 31 },
{ "name": "Kyoto-Red", "size": 31 },
{ "name": "Mokum", "size": 31 },
{ "name": "Scarlet-Nantes", "size": 31 },
{ "name": "Solar Yellow", "size": 31 },
{ "name": "Lunar White", "size": 31 },
{ "name": "Amarillo", "size": 31 },
{ "name": "Scarlet Red", "size": 31 }
]
},
{
"name": "Pepper",
"children": [
{ "name": "SweetChocolate", "size": 31 },
{ "name": "Fresno", "size": 31 },
{ "name": "Volcano", "size": 31 },
{ "name": "PasoBajillo", "size": 31 },
{ "name": "Poblano", "size": 31 },
{ "name": "OrangeBell", "size": 31 },
{ "name": "Fish", "size": 31 },
{ "name": "TequilaSunrise", "size": 31 },
{ "name": "CalWonder", "size": 31 },
{ "name": "CanaryBell", "size": 31 },
{ "name": "EarlyJalapeno", "size": 31 },
{ "name": "SweetRoundHungarian", "size": 31 },
{ "name": "Serrano", "size": 31 },
{ "name": "BlackHungarian", "size": 31 },
{ "name": "SweetCherryBlend", "size": 31 },
{ "name": "GantSzegedi", "size": 31 },
{ "name": "NewMexico#6Chile", "size": 31 }
]
},
{
"name": "Tomato",
"children": [
{ "name": "IndigoRoseTomato", "size": 31 },
{ "name": "Trifele", "size": 31 },
{ "name": "BlackFromTula", "size": 31 },
{ "name": "AuntRubysGreen", "size": 31 },
{ "name": "MoonGlow", "size": 31 },
{ "name": "BlackManSea", "size": 31 },
{ "name": "Pomodoro", "size": 31 },
{ "name": "StripedRoma", "size": 31 },
{ "name": "CreamSausage", "size": 31 },
{ "name": "AmanaOrange", "size": 31 },
{ "name": "GoldMedal", "size": 31 },
{ "name": "OrangeBanana", "size": 31 },
{ "name": "JauneFlamme", "size": 31 },
{ "name": "SanMarzano#3", "size": 31 },
{ "name": "AmishPaste", "size": 31 },
{ "name": "Delicious", "size": 31 },
{ "name": "Blondkopfchen", "size": 31 },
{ "name": "BrownBerry", "size": 31 },
{ "name": "MattsWildCherry", "size": 31 },
{ "name": "CherokeePurple", "size": 31 },
{ "name": "GiantBelgium", "size": 31 },
{ "name": "PinkBrandywine", "size": 31 },
{ "name": "Black", "size": 31 },
{ "name": "Nyagous", "size": 31 },
{ "name": "GreenGrape", "size": 31 },
{ "name": "GreenGiant", "size": 31 },
{ "name": "WhiteBeauty", "size": 31 },
{ "name": "PrudensPurple", "size": 31 },
{ "name": "BlackPrince", "size": 31 },
{ "name": "BoxCarWillie", "size": 31 }
]
},
{
"name": "Bean",
"children": [
{ "name": "bush", "children": [
{ "name": "BeurredeRocquencourtwax", "size": 31 },
{ "name": "RajamaIndianpink", "size": 31 },
{ "name": "DragonTongue", "size": 31 },
{ "name": "RoyalBurgundy", "size": 62 },
{ "name": "SoleilFilet", "size": 31 },
{ "name": "ExperimentalVariety(Johnnys)", "size": 31 },
{ "name": "Sequoia", "size": 31 },
{ "name": "Provider", "size": 31 }
]
},
{ "name": "pole", "children": [
{ "name": "Carminat purple Filet", "size": 31 },
{ "name": "PurplePod", "size": 31 },
{ "name": "Neckargold", "size": 31 },
{ "name": "MarvelOfVenice", "size": 31 },
{ "name": "Rattlesnake", "size": 31 }
]
},
{ "name": "other", "children": [
{ "name": "PaintedLadyImprovedRunner", "size": 31 },
{ "name": "SunsetRunner", "size": 31 },
{ "name": "BlueSpeckledTepary", "size": 31 },
{ "name": "BlueGooseCowpea", "size": 31 },
{ "name": "ExtraPrecoceAGranoViolettoFava", "size": 31 },
{ "name": "Thai#3ExtraLong", "size": 31 },
{ "name": "RedNoodleLong", "size": 31 },
{ "name": "VietnameseBlackCowpea", "size": 31 }
]
}
]
},
{ "name": "HERBS",
"children": [
{ "name": "Basil", "children": [
{ "name": "Cardinal", "size": 31 },
{ "name": "Mammoth", "size": 31 },
{ "name": "PurpleRuffles", "size": 31 },
{ "name": "SweetDaniLemon", "size": 31 },
{ "name": "Thai", "size": 31 },
{ "name": "Cinnamon", "size": 31 },
{ "name": "Genovese", "size": 31 },
{ "name": "RedLettuceLeaf", "size": 31 }
]
},
{ "name": "other", "children": [
{ "name": "Borage", "size": 31 },
{ "name": "Cumin", "size": 31 },
{ "name": "DillVierling", "size": 31 },
{ "name": "PerfectionFennel", "size": 31 },
{ "name": "ThaiRedRoselle", "size": 31 },
{ "name": "OrangeGrendadeSaffron", "size": 31 }
]
},
{ "name": "Marjoram", "children": [
{ "name": "Sweet", "size": 31 },
{ "name": "Marcelka", "size": 31 },
{ "name": "Zaatar", "size": 31 }
]
},
{ "name": "Cilantro", "children": [
{ "name": "Slo-Bolt", "size": 31 },
{ "name": "IndianDhannat", "size": 31 }
]
},
{ "name": "Parsley", "children": [
{ "name": "Krause", "size": 31 },
{ "name": "ItalianFlatLeaf", "size": 31 },
{ "name": "Curled", "size": 31 }
]
},
{ "name": "Oregano", "children": [
{ "name": "Greek", "size": 31 },
{ "name": "Standard", "size": 31 }
]
}
]
},
{ "name": "ALLIUM",
"children": [
{ "name": "garlic", "children": [
{ "name": "whitestorebought", "size": 31 },
{ "name": "purplefrommarilyn", "size": 31 }
]
},
{
"name": "Shallot",
"children": [
{ "name": "Picador", "size": 31 },
{ "name": "Conservor", "size": 31 },
{ "name": "Ambition", "size": 31 },
{ "name": "Saffron", "size": 31 }
]
},
{
"name": "Onion",
"children": [
{ "name": "Borettana", "size": 31 }
]
}
]
},
{ "name": "FLOWERS",
"children": [
{ "name": "Display", "children": [ {
"name": "Dahlia-Fireworks",
"size": 31
},
{ "name": "AmaranthLasVegasPurpleGlobe", "size": 31 },
{ "name": "ZinniaJazzyMix", "size": 31 },
{ "name": "SalviaBlueAngel", "size": 31 },
{ "name": "SunflowerCherryRose", "size": 31 },
{ "name": "Lobelia-CrystalPalace", "size": 31 },
{ "name": "Lobelia-Blue", "size": 31 },
{ "name": "CastorBeanCamencita", "size": 31 },
{ "name": "SalviaCambridgeBlue", "size": 31 }
]
},
{
"name": "Edible",
"children": [
{ "name": "SolarFlashbackCalendula", "size": 31 },
{ "name": "NasturtiumPeachMelba", "size": 31 },
{ "name": "Saffron", "size": 31 }
]
},
{
"name": "Grasses",
"children": [
{ "name": "SorghamBlack", "size": 31 },
{ "name": "VariegatedCorn", "size": 31 },
{ "name": "JesterMillet", "size": 31 },
{ "name": "RubySilkLoveGrass", "size": 31 }
]
}
]
}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment