Giới thiệu
Matplotlib cho phép thêm nhiều hơn một ô trong cùng một đồ thị. Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách trình bày dữ liệu trong cùng một biểu đồ, trên hai trục khác nhau.
Cách thực hiện ..
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.
import matplotlib.pyplot as plt
2.Chuẩn bị dữ liệu sẽ được hiển thị.
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.
# data prep - splitting the data Years, IPhone_Sales, Galaxy_Sales, Pixel_Sales = zip(*units_sold) # set the position Position = list(range(len(units_sold))) # set the width Width = 0.2
4 Tạo ô con đầu tiên.
plt.subplot(2, 1, 1)
<matplotlib.axes._subplots.AxesSubplot at 0x214185d4e50>
5. Tạo biểu đồ thanh với thông tin về IPhone_Sales.
Iphone = plt.bar(Position, IPhone_Sales,color='green') plt.ylabel('IPhone Sales') plt.xticks(Position, Years)
([<matplotlib.axis.XTick at 0x214186115e0>, <matplotlib.axis.XTick at 0x21418611580>, <matplotlib.axis.XTick at 0x2141861fc40>, <matplotlib.axis.XTick at 0x21418654e20>, <matplotlib.axis.XTick at 0x2141865f370>], [Text(0, 0, '2016'), Text(0, 0, '2017'), Text(0, 0, '2018'), Text(0, 0, '2019'), Text(0, 0, '2020')])
6.Bây giờ hãy tạo một trục y khác để thêm thông tin về doanh số bán hàng của Samsung Galaxy.
plt.twinx() Galaxy = plt.plot(Position, Galaxy_Sales, 'o-', color='blue') plt.ylabel('Galaxy Sales') plt.xticks(Position, Years)
([<matplotlib.axis.XTick at 0x214186b4c40>, <matplotlib.axis.XTick at 0x214186b4c10>, <matplotlib.axis.XTick at 0x21418682ac0>, <matplotlib.axis.XTick at 0x214186dd8e0>, <matplotlib.axis.XTick at 0x214186dddf0>], [Text(0, 0, '2016'), Text(0, 0, '2017'), Text(0, 0, '2018'), Text(0, 0, '2019'), Text(0, 0, '2020')])
7. Bây giờ chúng tôi sẽ lập kế hoạch Bán hàng Google Pixel cuối cùng.
plt.subplot(2, 1, 2) plt.plot(Position, Pixel_Sales, color='yellow') plt.gca().set_ylim(ymin=0) plt.xticks(Position, Years)
([<matplotlib.axis.XTick at 0x2141870f9a0>, <matplotlib.axis.XTick at 0x2141870f580>, <matplotlib.axis.XTick at 0x2141870a730>, <matplotlib.axis.XTick at 0x2141873c9d0>, <matplotlib.axis.XTick at 0x2141873cee0>], [Text(0, 0, '2016'), Text(0, 0, '2017'), Text(0, 0, '2018'), Text(0, 0, '2019'), Text(0, 0, '2020')])
plt.show()
Ví dụ
8.Đặt tất cả và lưu biểu đồ.
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 Years, IPhone_Sales, Galaxy_Sales, Pixel_Sales = zip(*units_sold) # set the position Position = list(range(len(units_sold))) # set the width Width = 0.2 plt.subplot(2, 1, 1) Iphone = plt.bar(Position, IPhone_Sales,color='green') plt.ylabel('IPhone Sales') plt.xticks(Position, Years) plt.twinx() Galaxy = plt.plot(Position, Galaxy_Sales, 'o-', color='blue') plt.ylabel('Galaxy Sales') plt.xticks(Position, Years) plt.subplot(2, 1, 2) plt.plot(Position, Pixel_Sales, color='yellow') plt.ylabel('Pixel Sales') plt.gca().set_ylim(ymin=0) plt.xticks(Position, Years) # plt.show() plt.savefig('CombiningGraphs.png', dpi=72)