亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

sns.catplot,縮小條形之間的差距

sns.catplot,縮小條形之間的差距

偶然的你 2022-10-18 16:30:15
這是我運行此代碼時得到的情節有什么辦法可以減少這兩個條之間的間隙但不能完全相互接觸?sns.catplot(x = "case", kind = "count", data = df, alpha=0.8, palette = my_pal, hue="class")plt.ylabel("Count", size=12)plt.tight_layout()
查看完整描述

1 回答

?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

問題似乎是“case”和“class”列包含相同的信息,只是名稱不同。在 case 為 1 的任何地方,class 都是 Negative,反之亦然。

如果您同時使用xand hue,seaborn 將放置 4 列:

  • 案例 1,“負面”類

  • 案例 1,“綠色”類

  • 案例 2,“負面”類

  • 案例 2,“綠色”類

四列中的兩列保持空白:

import seaborn as sns

import matplotlib.pyplot as plt

import numpy as np

import pandas as pd


df = pd.DataFrame({'case': np.concatenate([np.repeat([1], 3700), np.repeat([2], 1200)]),

                   'class': np.concatenate([np.repeat(['Negative'], 3700), np.repeat(['green'], 1200)])})


g = sns.catplot(x="case",

                hue='class',

                palette='Blues',

                data=df,

                kind="count")

plt.show()

http://img1.sycdn.imooc.com//634e644e00016a6e06330282.jpg

在這種情況下,更合適的情節是省略hue并直接使用該類x:


g = sns.catplot(x='class',

                palette='Blues',

                data=df,

                kind='count')

plt.show()

http://img1.sycdn.imooc.com//634e645b00012d3304690210.jpg

PS:要獲得與第一個情節相似的圖例,可以使用 xticks 和 xlabel。請注意,seaborncatplot旨在創建完整的子圖網格。g.axes[0][0]抓取ax第一個子圖的。


plt.legend(g.axes[0][0].patches,

           [l.get_text() for l in g.axes[0][0].get_xticklabels()],

           title= g.axes[0][0].get_xlabel())

g.axes[0][0].set_xticks([])  # remove the xticks (now in legend)

g.axes[0][0].set_xlabel('')  # remove the xlabel (now title of legend)


查看完整回答
反對 回復 2022-10-18
  • 1 回答
  • 0 關注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號