成人免费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語言

2021-01-29 08:32:21

數據結構數組

2021-02-06 08:34:49

函數memoize文檔

2022-08-08 08:25:21

Javajar 文件

2022-11-01 08:46:20

責任鏈模式對象
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久久久一区探花 | 国产精品永久久久久久久www | 欧美亚洲一区二区三区 | 久久成人精品视频 | 精精国产xxxx视频在线播放7 | 在线观看毛片网站 | 成人羞羞国产免费视频 | 91久久国产综合久久 | 国产精品久久久久久久久久 | 精品一区二区三区电影 | 99精品在线免费观看 | 欧美日韩电影在线 | 特级黄色毛片 | 成人欧美一区二区三区在线观看 | 国产美女h视频 | 久草.com| 久久久久国产精品免费免费搜索 | 久久久国产一区 | 久久久精品国产 | 日本一区不卡 | 在线中文字幕第一页 | 欧美一级淫片007 | 精品国产乱码久久久久久中文 | 天天夜天天操 | 水蜜桃亚洲一二三四在线 | 中文字幕1区 | 久久久观看 | 日韩中文字幕 | 日日日日操| 最新免费黄色网址 | 国产激情精品 | 亚洲国产黄色av | japan21xxxxhd美女 日本欧美国产在线 | 欧美久久久电影 | 91视频18| 97国产精品 | 国产一区二区小视频 | 国产精品99久久免费观看 | 久久精品国产精品青草 | 男女羞羞免费视频 | 夜夜爽夜夜操 |