成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊一聊美化Matplotlib三個小技巧

大數據 數據可視化
Matplotlib是Python的數據可視化庫的基礎。它是其他可視化工具(如Seaborn)的基礎。

Matplotlib提供了很大的靈活性,因此您可以自定義或調整幾乎所有的圖表。但是想要完全控制可視化就需要編寫更多的代碼。

圖片

在本文中,我們將介紹3個可以用于定制Matplotlib圖表的技巧:

  • 減少x軸或y軸上的刻度數
  • 添加一個輔助y軸
  • 共享x軸的子圖坐標對齊

本文中我們將使用折線圖為例,但這些技巧也可以應用于其他類型的圖。我創建了一個數據集模擬價格和銷售數據。

import pandas as pd
import numpy as np
df = pd.read_csv("mock_sales_data.csv", nrows=100)
df.head()

圖片

數據包含日期、價格和銷售數量列。只顯示了數據集的前100行。

減少刻度數

如果在軸上繪制的數據點數量很多,刻度看起來非常的緊湊,甚至可能重疊。在處理時間序列數據時,x軸通常包含占用大量空間的日期,所以可以減少軸上的刻度數來提高顯示效果。

讓我們先做一個不限制x軸刻度數的例子。

import matplotlib.pyplot as plt
plt.style.use("seaborn-darkgrid")

plt.figure(figsize=(12, 6))
plt.plot(df["Date"], df["Price"])
plt.show()

圖片

可以看到X軸的刻度重疊并且根本無法顯示完整。下面我們添加設置只顯示部分的刻度,這樣可以完整顯示。

plt.figure(figsize=(12, 6))
plt.plot(df["Date"], df["Price"])
#每15個刻度顯示一次
plt.xticks(np.arange(0, len(df), 15), fontsize=12)
plt.yticks(fontsize=12)

plt.show()

圖片

我們使用NumPy的arange函數來指定標記的位置,現在看起來好多了。

使用輔助軸

如果想在同一個圖上顯示兩個變量。例如將產品的價格和銷售數量繪制在一起查看價格對銷售數量的影響。

我們的DataFrame中的銷售數量和價格列顯示在同一線圖上,只有一個y軸。

圖片

可以看到價格和銷售數量的取值范圍差距很大我們幾乎看不到銷售的變化,這時可以使用輔助軸來指定另外一條線的取值范圍。

fig, ax1 = plt.subplots(figsize=(12,6))
ax2 = ax1.twinx()

ax1.plot(df["Date"], df["Price"])
ax2.plot(df["Date"], df["SalesQty"], color="orange")
ax1.set_ylabel("Price", fontsize=15)
ax2.set_ylabel("SalesQty", fontsize=15)
ax1.tick_params(axis='both', which='major', labelsize=12)
ax2.tick_params(axis='both', which='major', labelsize=12)

plt.xticks(np.arange(0, len(df), 15))
ax1.grid(False)
ax2.grid(False)

plt.show()

圖片

看起來好多了。我們可以清楚的觀察到價格與銷售量之間的反比關系。

共享x軸的子圖坐標對齊

我們可以在一個Figure對象上創建多個子圖。Matplotlib允許使用subplot函數創建子圖格。例如下面的代碼行創建了一個包含4個子圖的2x2網格圖。

fig, (ax1, ax2, ax3, ax4) = plt.subplots(nrows=2, ncols=2)

使用nrows和ncols參數自定義網格的大小。

如果我們想在2個子圖中共享X軸怎么辦呢?我們可以使用tight_layout函數。它可以用于調整子圖之間的填充

fig, (ax1, ax2) = plt.subplots(
nrows=2, ncols=1,
sharex=True,
figsize=(12, 8)
)
fig.tight_layout(pad=2)

ax1.plot(df["Date"], df["Price"])
ax1.set_title("Price", fontsize=15)

ax2.plot(df["Date"], df["SalesQty"])
ax2.set_title("SalesQty", fontsize=15)

ax1.tick_params(axis='both', which='major', labelsize=12)
ax2.tick_params(axis='both', which='major', labelsize=12)
plt.xticks(np.arange(0, len(df), 15), fontsize=12)
plt.show()

圖片

可以看到2個子圖的X軸坐標(日期)都已經對齊了,這對于分析時間序列時非常有用的,例如想對比2個產品或者2個不同的門店在同一時期的銷售情況,通過對齊日期可以給出非常好的直觀判斷。

以上就是3個Matplotlib可視化的小技巧,這些技巧肯定會幫助你創建信息更豐富、功能更強大的數據可視化圖表。


責任編輯:華軒 來源: DeepHub IMBA
相關推薦

2020-09-15 12:45:48

系統LinuxUnix

2022-10-19 15:20:58

pandas數據處理庫技巧

2022-01-19 17:11:05

JavaScript數據工具

2021-08-04 09:32:05

Typescript 技巧Partial

2018-04-27 09:22:21

數據存儲技巧

2019-03-21 11:04:22

安全標準信息

2024-07-24 11:40:33

2021-02-22 14:04:47

Vue框架項目

2023-09-22 17:36:37

2021-01-28 22:31:33

分組密碼算法

2020-05-22 08:16:07

PONGPONXG-PON

2018-06-07 13:17:12

契約測試單元測試API測試

2022-01-11 15:44:15

JavaScript圖表庫數據

2021-05-12 18:02:23

方法創建線程

2022-09-26 08:03:25

VMware虛擬機

2021-08-02 07:57:02

內存Go語言

2019-02-13 14:15:59

Linux版本Fedora

2021-01-29 08:32:21

數據結構數組

2021-02-06 08:34:49

函數memoize文檔

2022-08-08 08:25:21

Javajar 文件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线91| 久久999| 粉嫩一区二区三区性色av | 国产精品视频播放 | 91在线第一页 | 天天干亚洲 | 一区二区三区四区在线 | 精品日韩在线 | www.久草| 国产女人与拘做视频免费 | 天天操夜夜骑 | 亚洲精品一区二区三区蜜桃久 | 天天看天天爽 | 在线视频一区二区 | 手机av免费在线 | 国产日韩一区二区 | 亚洲最色视频 | 日本三级电影免费观看 | 欧美xxxx在线| 日韩精品一区在线 | 精品视频一区二区三区在线观看 | 日韩欧美三级在线 | 激情久久网 | 亚洲日产精品 | 久久99精品久久久久久 | 免费视频二区 | 视频一区二区在线观看 | 亚洲精品久久区二区三区蜜桃臀 | 777zyz色资源站在线观看 | 久久av一区二区三区 | 自拍视频在线观看 | 一区在线播放 | 久久国产精品久久久久久久久久 | 日韩中文字幕在线免费 | 日韩亚洲视频 | 亚洲国产精品久久久 | 国产成人精品一区二区三区四区 | 国产精品亚洲一区二区三区在线 | av影音| 成人毛片网 | 人人爱干 |