Plotting (legacy API)#

Note

This is a legacy API that’s kept for backwards compatibility.

Ensure you have matplotlib installed:

%pip install matplotlib --quiet
Note: you may need to restart the kernel to use updated packages.
%load_ext sql

Connect to an in-memory SQLite database.

%sql sqlite://

Line#

%%sql sqlite://
CREATE TABLE points (x, y);
INSERT INTO points VALUES (0, 0);
INSERT INTO points VALUES (1, 1.5);
INSERT INTO points VALUES (2, 3);
INSERT INTO points VALUES (3, 3);
Done.
1 rows affected.
1 rows affected.
1 rows affected.
1 rows affected.
[]
points = %sql SELECT x, y FROM points
points.plot()
*  sqlite://
Done.
<Axes: title={'center': 'y'}, xlabel='x', ylabel='y'>
../_images/e9b3a2a166a5b621e72c1526e4013d7782343a615b165fd72d6566409225559b.png

Bar#

Note: sample data from the TIOBE index.

%%sql sqlite://
CREATE TABLE languages (name, rating, change);
INSERT INTO languages VALUES ('Python', 14.44, 2.48);
INSERT INTO languages VALUES ('C', 13.13, 1.50);
INSERT INTO languages VALUES ('Java', 11.59, 0.40);
INSERT INTO languages VALUES ('C++', 10.00, 1.98);
Done.
1 rows affected.
1 rows affected.
1 rows affected.
1 rows affected.
[]
change = %sql SELECT name, change FROM languages
change.bar()
*  sqlite://
Done.
<Axes: xlabel='name', ylabel='change'>
../_images/c0b95cb3871883e30b56901b4127624276f275aaa983c6cb3abe99e4dbaf373d.png

Pie#

Data from Our World in Data.

%%sql sqlite://
CREATE TABLE energy_2021 (source, percentage);
INSERT INTO energy_2021 VALUES ('Oil', 31.26);
INSERT INTO energy_2021 VALUES ('Coal', 27.17);
INSERT INTO energy_2021 VALUES ('Gas', 24.66);
INSERT INTO energy_2021 VALUES ('Hydropower', 6.83);
INSERT INTO energy_2021 VALUES ('Nuclear', 4.3);
INSERT INTO energy_2021 VALUES ('Wind', 2.98);
INSERT INTO energy_2021 VALUES ('Solar', 1.65);
INSERT INTO energy_2021 VALUES ('Biofuels', 0.70);
INSERT INTO energy_2021 VALUES ('Other renewables', 0.47);
Done.
1 rows affected.
1 rows affected.
1 rows affected.
1 rows affected.
1 rows affected.
1 rows affected.
1 rows affected.
1 rows affected.
1 rows affected.
[]
energy = %sql SELECT source, percentage FROM energy_2021
energy.pie()
*  sqlite://
Done.
<Axes: title={'center': 'percentage'}>
../_images/996a90ace84f438dd133760d22cfdeafe1a94e59238428717eb5271b213854e8.png