簡體   English   中英

如何在Seaborn的分組箱圖中添加垂直網格線?

[英]How to add vertical grid lines in a grouped boxplot in Seaborn?

我想創建一個在seaborn具有垂直網格線的分組boxplot ,即,在每個刻度線處,應該有一條垂直線,就像在常規散點圖中一樣。

一些示例代碼:

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import numpy.random as rnd

some_x=[1,2,3,7,9,10,11,12,15,18]
data_for_each_x=[]

for i in range(0, len(some_x)):
    rand_int=rnd.randint(10,30)
    data_for_each_x.append([np.random.randn(rand_int)])

sns.set()
sns.boxplot(data=data_for_each_x, showfliers=False)
plt.show()

看起來如何:

在此輸入圖像描述

如果我理解正確,你需要垂直的白色網格線而不是你當前獲得的水平線。 這是一種方法:

創建一個軸對象ax ,然后將其分配給sns.boxplot 然后,您可以使用ax.xaxis.gridax.yaxis.grid的布爾參數來選擇要顯示的網格線。 由於您需要垂直網格線,請關閉y網格( False )並打開x網格( True )。

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import numpy.random as rnd

fig, ax = plt.subplots() # define the axis object here
some_x=[1,2,3,7,9,10,11,12,15,18]
data_for_each_x=[]

for i in range(0, len(some_x)):
    rand_int=rnd.randint(10,30)
    data_for_each_x.append([np.random.randn(rand_int)])

sns.set()
sns.boxplot(data=data_for_each_x, showfliers=False, ax=ax) # pass the ax object here

ax.yaxis.grid(False) # Hide the horizontal gridlines
ax.xaxis.grid(True) # Show the vertical gridlines

如果要顯示x和y網格,請使用ax.grid(True)

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM