You are on page 1of 9

pgf-pie.

sty vẽ các biểu đồ phần trăm dùng TikZ/PGF

Nguyễn Hữu Điển


Khoa Toán - Cơ - Tin học
ĐHKHTN Hà Nội, ĐHQGHN

Mục lục
1 Giới thiệu 1

2 Dùng gói lệnh 1


2.1 Lệnh cơ sở . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2.2 Vị trí, quay, cỡ hình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.3 Tô mầu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.4 Tách các miếng biểu đồ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.5 Góc miếng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.6 Văn bản . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.6.1 Chữ số . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.6.2 Nhãn văn bản . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.7 Phong cách khác . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.7.1 Biểu đồ có bóng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 Các phương án biểu đồ 7


3.1 Biểu đồ diện tích cực . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2 Square . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3 Đám mây . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4 Ví dụ dân số thế giới 8

1 Giới thiệu
Yuan Xu viết gói lệnh để vẽ bóng của các hình vẽ bằng TikZ/PGF có tại
https://ctan.org/tex-archive/graphics/pgf/contrib/pgf-pie
Muốn sử dụng nhất thiết phải cài xong tikz.sty.

2 Dùng gói lệnh


2.1 Lệnh cơ sở
\pie lệnh cở với đối số định dạng 10/A, 20/B, 30/C, 40/D.

1
http://nhdien.wordpress.com 2

7 8: 2
\begin{tikzpicture} B
\pie{10/A, 20/B, 30/C, 40/D}
\end{tikzpicture}
20%
C A
10%
30%

40%

2.2 Vị trí, quay, cỡ hình


Tâm của biểu đồ đặt bằng pos (mặc định là {0,0}). Biểu đồ có thể quay bằng đặt rotate (theo độ quay). Cỡ của
biểu đồ đặt bằng radius (mặc định là 3).
7 8
\begin{tikzpicture}
\pie[ radius=2]{10/, 20/, 30/, 40/}
\pie[pos={5,0},radius=2, rotate=180]{10/, 20/,30/, 40/}
\pie[pos={11,0}, radius=3]{10/, 20/,30/, 40/}
\end{tikzpicture}
: 2

20%
20%
40% 10%
30% 10% 30%

10% 30%
40%
20% 40%

2.3 Tô mầu
Mầu đặt bằng tùy chọn color, mặc định quay tròn theo bánh xe. Như
7 8
\begin{tikzpicture}
http://nhdien.wordpress.com 3

\pie{10/, 10/, 10/, 10/, 10/, 10/, 10/, 10/, 10/, 10/}
\end{tikzpicture}
: 2

10%
10% 10%

10% 10%

10% 10%

10% 10%
10%

Đặt mầu
7 8
\begin{tikzpicture}
\pie[color={black!10, black!20, black!30, black!40}]
{10/A, 20/B, 30/C, 40/D}
\pie[pos={8,0}, color=blue!20] {10/A,20/B, 30/C, 40/D}
\end{tikzpicture}
: 2
B B

20% 20%
C A C A
10% 10%
30% 30%

40% 40%

D D

2.4 Tách các miếng biểu đồ

7 8
\begin{tikzpicture}
% explode list
\pie[explode={0, 0, 0, 0.1}] {10/A, 20/B, 30/C, 40/D}
% explode all
http://nhdien.wordpress.com 4

\pie[pos={8,0}, explode=0.1] {10/A, 20/B, 30/C, 40/D}


\end{tikzpicture}
: 2
B
B

20% 20%

C A C A
10% 10%
30% 30%

40% 40%

D D

2.5 Góc miếng


Tổng giá trị sum mặc định là 100%. Tự động tính lại với sum=auto số sau đó after number=
7 8
\begin{tikzpicture}
\pie[sum=auto, after number=, radius=2]{33/Boys, 7/Girls}
\pie[pos={6,0}, sum=40, after number=,radius=2]{33/Boys}
\end{tikzpicture}
: 2
Boys Boys

33 33

7
Girls

2.6 Văn bản


2.6.1 Chữ số

Hai đối số có thể dùng thiết kế chữ số: before number và after number. Hai thông số bỏ trống là mặc định, nhưng
nếu sum=100, after number sẽ đặt là % tự động.
http://nhdien.wordpress.com 5

7 8: 2
\begin{tikzpicture} B
\pie[radius=2]{10/A, 20/B, 30/C, 40/D}
\end{tikzpicture}
20%
C A
30% 10%

40%

Độ phóng phông Cỡ của phông trong biểu đồ phong theo độ rộng của nó tương xứng miếng to hoặc nhỏ.
7 8: 2
\begin{tikzpicture} B
\pie[scale font]{10/A, 20/B, 30/C, 40/D}
\end{tikzpicture}
20%
C A
10%
30%

40%

2.6.2 Nhãn văn bản

Giá trị của thông số text là label(mặc định), pin, inside hoặc legend.
7 8: 2
\begin{tikzpicture} B
\pie[text=pin, radius=2]{10/A,
20/B, 30/C, 40/D}
\end{tikzpicture}
20%
C A
30% 10%

40%

D
http://nhdien.wordpress.com 6

7 8: 2
\begin{tikzpicture}
\pie[text=inside, radius=2]{10/A,
B
20/B, 30/C, 40/D}
20%
\end{tikzpicture} A
C
30% 10%

D
40%

7 8: 2
\begin{tikzpicture}
\pie[text=legend,radius=2]{10/First,
20/Second, 30/Third , 40/Fourth} 20%
\end{tikzpicture} First
30% 10% Second
Third
Fourth
40%

2.7 Phong cách khác


2.7.1 Biểu đồ có bóng
7 8: 2
% \usetikzlibrary{shadows} B
\begin{tikzpicture}
\pie[style=drop shadow,radius=2]{10/A,
20%
20/B, 30/C, 40/D} C A
\end{tikzpicture} 10%
30%

40%

D
http://nhdien.wordpress.com 7

3 Các phương án biểu đồ


3.1 Biểu đồ diện tích cực
7 8: 2
\begin{tikzpicture}
B
\pie[polar]{10/A, 20/B, 30/C, 40/D}
\end{tikzpicture} A
20%
10%

30% 40%

C
D

3.2 Square
7 8: 2
\begin{tikzpicture} A C
\pie[square]{10/A, 20/B, 30/C, 40/D}
\end{tikzpicture}

30% 40% D
10%

20% B

Chú ý: explode không có tác dụng biểu đồ hình vuông.


http://nhdien.wordpress.com 8

3.3 Đám mây


7 8: 2
\begin{tikzpicture}
\pie[cloud , text=inside , scale font]{10/A,
20/B, 30/C, 40/D}
\end{tikzpicture}
B
20% D
40%
A
10%

C
30%

4 Ví dụ dân số thế giới


7 8
\begin{tikzpicture}
\pie[cloud, rotate=90, sum=auto, radius=3, after number=, text=pin] {1339/China,
1210/India, 312/USA, 237/Indonesia, 190/Brazil, 177/Pakistan,
158/Nigeria, 151/Bangladesh, 142/Russia, 127/Japan, 112/Mexico,
94/Philippines, 87/Vietnam, 82/Ethiopia, 81/Germany, 80/Egypt,
75/Iran, 73/Turkey, 67/Thailand, 65/Congo, 65/France, 62/UK,
60/Italy, 50/South Africa, 48/South Korea, 47/Myanmar, 46/Spain,
46/Colombia, 45/Ukraine, 43/Tanzania, 40/Argentina, 38/Kenya,
38/Poland, 36/Algeria, 34/Canada, 32/Morocco, 31/Uganda, 31/Iraq,
31/Afghanistan, 30/Sudan, 29/Peru, 29/Venezuela, 28/Nepal,
28/Malaysia, 27/Uzbekistan, 27/Saudi Arabia, 24/Ghana, 24/North
Korea, 23/Syria, 23/Taiwan, 22/Australia, 22/Yemen, 21/Romania,
20/Madagascar, 20/Sri Lanka, 20/Mozambique, 19/Cote d’Ivoire,
19/Cameroon, 19/Angola, 17/Chile, 16/Netherlands, 16/Kazakhstan,
15/Burkina Faso, 15/Niger, 14/Malawi, 14/Mali, 14/Guatemala,
14/Ecuador, 13/Cambodia, 13/Zambia, 12/Zimbabwe, 12/Senegal,
11/Cuba, 11/Chad, 10/Belgium, 10/Greece, 10/Portugal, 10/Tunisia,
10/Czech Republic, 10/Bolivia, 10/Rwanda, 10/Haiti, 10/Hungary,
10/Guinea, 10/Belarus, 9/Sweden, 9/Dominican Republic, 9/Somalia,
9/Azerbaijan, 9/Benin, 8/Austria, 8/Burundi, 8/United Arab
Emirates, 8/South Sudan, 8/Honduras, 8/Switzerland, 8/Israel,
7/Bulgaria, 7/Serbia, 7/Hong Kong }
\end{tikzpicture}
: 2
http://nhdien.wordpress.com 9

Hong Kong
Bulgaria
Switzerland
South Sudan 7
Burundi 7 7
Benin 8 8
Somalia 8 8 Serbia
Sweden 8 8 Israel
Guinea 9 8 Honduras
Haiti 9 9 United Arab
Bolivia 9 9 Austria
Tunisia 1010 Azerbaijan
Greece 1010 Dominican Repub
Chad 1010 Belarus
Senegal 1010 Hungary
1010 Rwanda
Zambia Czech Republic
Ecuador 1110 Portugal
Mali 12 11 Belgium
Niger 13 12 Cuba
14 13 Zimbabwe
Kazakhstan 14 14
Chile Cambodia
15 14 Guatemala
Cameroon 16 15 Malawi
Mozambique 17 16 Burkina Faso
Madagascar 19 19 Netherlands
Yemen 20 19 Angola
Taiwan 20 20 Cote d’Ivoire
North Korea 22 21 Sri Lanka
Saudi Arabia 23 22 Romania
Malaysia 24 23 Australia
Venezuela 27 24 Syria
28 27 Ghana
Sudan Uzbekistan
Iraq 29 28 Nepal
Morocco 30 29 Peru
Algeria 31 31 Afghanistan
Kenya 32 31 Uganda
Tanzania 36 34 Canada
Colombia 38 38 Poland
Myanmar 43 40 Argentina
46 45 Ukraine
South Africa
47 46 Spain
UK
50 48 South Korea
Congo
62 60
Turkey Italy
65 65
Egypt France
73 67
Ethiopia Thailand
80 75
Philippines Iran
82 81 Germany
Japan
94 87 Vietnam
Bangladesh
127 112
Mexico
Pakistan
151 142
Russia
Indonesia
177 158
Nigeria
India 237 190 Brazil

USA
312
1210

1339

You might also like