为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Seaborn 的分组箱线图中添加垂直网格线?

如何在 Seaborn 的分组箱线图中添加垂直网格线?

牛魔王的故事 2021-09-23 09:37:40
我想在 中创建一个boxplot带有垂直网格线的分组seaborn,即在每个刻度处,应该有一条垂直线,就像在常规散点图中一样。一些示例代码:import matplotlib.pyplot as pltimport seaborn as snsimport numpy as npimport numpy.random as rndsome_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()它的外观:
查看完整描述

1 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

如果我理解正确,您需要垂直的白色网格线而不是您当前获得的水平线。这是一种方法:


创建一个轴对象ax,然后将其分配给sns.boxplot. 然后,你可以选择使用一个布尔参数,以显示其网格线ax.xaxis.grid和ax.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)

//img1.sycdn.imooc.com//614bdac20001e17405650424.jpg

查看完整回答
反对 回复 2021-09-23
  • 1 回答
  • 0 关注
  • 476 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号