Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để thêm Huyền thoại vào biểu đồ bằng Python?

Giới thiệu ...

Mục đích chính của biểu đồ là làm cho dữ liệu dễ hiểu. "Một bức tranh có giá trị bằng một nghìn từ" có nghĩa là những ý tưởng phức tạp không thể diễn đạt thành lời có thể được chuyển tải bằng một hình ảnh / biểu đồ duy nhất.

Khi vẽ biểu đồ có nhiều thông tin, chú giải có thể hiển thị thông tin liên quan để cải thiện sự hiểu biết về dữ liệu được trình bày.

Cách thực hiện ..

Trong matplotlib, truyền thuyết có thể được trình bày theo nhiều cách. Các chú thích để thu hút sự chú ý đến các điểm cụ thể cũng rất hữu ích để giúp người đọc hiểu thông tin được hiển thị trên biểu đồ.

1.Cài đặt matplotlib bằng cách mở dấu nhắc lệnh python và kích hoạt pip cài đặt matplotlib.

2.Chuẩn bị dữ liệu sẽ được hiển thị.

Ví dụ

import matplotlib.pyplot as plt

# data prep (I made up data no accuracy in these stats)
mobile = ['Iphone','Galaxy','Pixel']

# Data for the mobile units sold for 4 Quaters in Million
units_sold = (('2016',12,8,6),
('2017',14,10,7),
('2018',16,12,8),
('2019',18,14,10),
('2020',20,16,5),)

3. Ghép dữ liệu vào các mảng cho các đơn vị di động của từng công ty.

Ví dụ

# data prep - splitting the data
IPhone_Sales = [Iphones for Year, Iphones, Galaxy, Pixel in units_sold]
Galaxy_Sales = [Galaxy for Year, Iphones, Galaxy, Pixel in units_sold]
Pixel_Sales = [Pixel for Year, Iphones, Galaxy, Pixel in units_sold]

# data prep - Labels
Years = [Year for Year, Iphones, Galaxy,Pixel in units_sold]

# set the position
Position = list(range(len(units_sold)))

# set the width
Width = 0.2

4 Tạo biểu đồ thanh với dữ liệu đã chuẩn bị sẵn. Mỗi doanh số bán sản phẩm sẽ nhận được lệnh gọi đến .bar, xác định vị trí và doanh số bán hàng của nó.

Chú thích được thêm bằng cách sử dụng thuộc tính xy và xytext. Nhìn vào dữ liệu, doanh số bán hàng trên thiết bị di động Google Pixel đã giảm 50%, tức là từ 10 Triệu đơn vị được bán vào năm 2019 xuống chỉ còn 5 Triệu vào năm 2022. Vì vậy, chúng tôi sẽ đặt văn bản và chú thích ở thanh cuối cùng.

Cuối cùng, chúng tôi sẽ thêm chú giải bằng cách sử dụng tham số chú giải. Theo mặc định, matplotlib sẽ vẽ chú giải trên một khu vực có ít sự chồng chéo dữ liệu nhất.

Ví dụ

plt.bar([p - Width for p in Position], IPhone_Sales, width=Width,color='green')
plt.bar([p for p in Position], Galaxy_Sales , width=Width,color='blue')
plt.bar([p + Width for p in Position], Pixel_Sales, width=Width,color='yellow')

# Set X-axis as years
plt.xticks(Position, Years)

# Set the Y axis label
plt.xlabel('Yearly Sales')
plt.ylabel('Unit Sales In Millions')

# Set the annotation Use the xy and xytext to change the arrow
plt.annotate('50% Drop in Sales', xy=(4.2, 5), xytext=(5.0, 12),
horizontalalignment='center',
arrowprops=dict(facecolor='red', shrink=0.05))

# Set the legent
plt.legend(mobile, title='Manufacturers')

Đầu ra

<matplotlib.legend.Legend at 0x19826618400>

Làm cách nào để thêm Huyền thoại vào biểu đồ bằng Python?

  • Nếu bạn cảm thấy việc thêm chú giải bên trong biểu đồ là ồn ào, bạn có thể sử dụng tùy chọn bbox_to_anchor để vẽ chú giải bên ngoài. bbox_to_anchor có các vị trí (X, Y), trong đó 0 là góc dưới bên trái của biểu đồ và 1 là góc trên bên phải.

LƯU Ý: - Sử dụng .subplots_adjust để điều chỉnh chú giải nơi biểu đồ bắt đầu và kết thúc.

Ví dụ. giá trị right =0,50 có nghĩa là nó để lại 50% màn hình ở bên phải của ô. Giá trị mặc định cho bên trái là 0,125, nghĩa là nó để lại 12,5% không gian ở bên trái.

Đầu ra

plt.legend(mobile, title='Manufacturers', bbox_to_anchor=(1, 0.8))
plt.subplots_adjust(right=1.2)

Làm cách nào để thêm Huyền thoại vào biểu đồ bằng Python?

Ví dụ

6.Cuối cùng, hãy để chúng tôi lưu lại con số.

import matplotlib.pyplot as plt

# data prep (I made up data no accuracy in these stats)
mobile = ['Iphone','Galaxy','Pixel']

# Data for the mobile units sold for 4 Quaters in Million
units_sold = (('2016',12,8,6),
('2017',14,10,7),
('2018',16,12,8),
('2019',18,14,10),
('2020',20,16,5),)

# data prep - splitting the data
IPhone_Sales = [Iphones for Year, Iphones, Galaxy, Pixel in units_sold]
Galaxy_Sales = [Galaxy for Year, Iphones, Galaxy, Pixel in units_sold]
Pixel_Sales = [Pixel for Year, Iphones, Galaxy, Pixel in units_sold]

# data prep - Labels
Years = [Year for Year, Iphones, Galaxy,Pixel in units_sold]

# set the position
Position = list(range(len(units_sold)))

# set the width
Width = 0.2

plt.bar([p - Width for p in Position], IPhone_Sales, width=Width,color='green')
plt.bar([p for p in Position], Galaxy_Sales , width=Width,color='blue')
plt.bar([p + Width for p in Position], Pixel_Sales, width=Width,color='yellow')

# Set X-axis as years
plt.xticks(Position, Years)

# Set the Y axis label
plt.xlabel('Yearly Sales')
plt.ylabel('Unit Sales In Millions')

# Set the annotation Use the xy and xytext to change the arrow
plt.annotate('50% Drop in Sales', xy=(4.2, 5), xytext=(5.0, 12),
horizontalalignment='center',
arrowprops=dict(facecolor='red', shrink=0.05))

# Set the legent
plt.legend(mobile, title='Manufacturers')

plt.legend(mobile, title='Manufacturers')
plt.subplots_adjust(right=1.2)

# plt.show()
plt.savefig('MobileSales.png')

Làm cách nào để thêm Huyền thoại vào biểu đồ bằng Python?