def scatterplot(self, x=0, y=1, path=None, width=None, height=None): """ Render a lattice/grid of scatterplots using :class:`leather.Lattice`. :param x: The name or index of a column to plot as the x axis of the chart. Defaults to the first column in the table. :param y: The name or index of a column to plot as the y axis of the chart. Defaults to the second column in the table. :param path: If specified, the resulting SVG will be saved to this location. If :code:`None` and running in IPython, then the SVG will be rendered inline. Otherwise, the SVG data will be returned as a string. :param width: The width of the output SVG. :param height: The height of the output SVG. """ if type(x) is int: x_name = self.column_names[x] else: x_name = x if type(y) is int: y_name = self.column_names[y] else: y_name = y chart = leather.Lattice(shape=leather.Dots()) chart.add_x_axis(name=x_name) chart.add_y_axis(name=y_name) chart.add_many(self.values(), x=x, y=y, titles=self.keys()) return chart.to_svg(path=path, width=width, height=height)
def setUp(self): self.shape = leather.Dots('red') self.linear = leather.Linear(0, 10) self.ordinal = leather.Ordinal(['foo', 'bar', 'bing']) self.palette = (color for color in ['red', 'white', 'blue'])
import leather import math import csv chart = leather.Chart('Income vs. health') with open('data.csv', 'r') as csvfile: reader = csv.DictReader(csvfile) data = list(reader) def size_dot_by_area(x, y, i): return math.sqrt(int(data[i]['population'])) / 1000 dots = leather.Dots('rgba(0,0,0,0.5)', radius=size_dot_by_area) series = leather.Series(data, dots, x=lambda row, i: math.log(float(row['income'])), y=lambda row, i: float(row['health'])) chart.add_series(series) chart.set_x_axis(leather.Axis(name='Log GDP per capita')) chart.set_y_axis(leather.Axis(name='Life expectancy in years')) chart.to_svg('chart.svg')
def setUp(self): self.shape = leather.Dots('red')
def setUp(self): self.shape = leather.Dots('red') self.linear = leather.Linear(0, 10) self.ordinal = leather.Ordinal(['foo', 'bar', 'bing'])