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

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

seaborn 中的疊加圖會導致 x 軸未對齊

seaborn 中的疊加圖會導致 x 軸未對齊

慕蓋茨4494581 2023-08-08 10:41:39
我在嘗試將繪圖與seaborn 疊加時遇到問題。我能夠分別生成兩個圖fig, (ax1,ax2) = plt.subplots(ncols=2,figsize=(30, 7)) sns.lineplot(data=data1, y='MSE',x='pct_gc',ax=ax1) sns.boxplot(x="pct_gc", y="MSE", data=data2,ax=ax2,width=0.4)輸出如下所示:但是當我嘗試將兩個圖疊加時,但將兩者分配給同一個斧頭對象。fig, (ax1,ax2) = plt.subplots(ncols=2,figsize=(30, 7)) sns.lineplot(data=data1, y='MSE',x='pct_gc',ax=ax1) sns.boxplot(x="pct_gc", y="MSE", data=data2,ax=ax2,width=0.4)當疊加兩個圖時(兩個圖的 X 軸都從 0 到 0.069),我無法識別 Lineplot 中的 X 軸變化。我的目標是使兩個圖疊加,同時保持相同的 X 軸范圍。
查看完整描述

1 回答

?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

Seabornboxplot創建了分類 x 軸,所有框都具有相同的距離。在內部,x 軸編號為,0, 1, 2, ...但在外部,它的標簽為 0 到 0.069。


要將線圖與 a 結合起來boxplot,可以直接對 matplotlibboxplot進行尋址,以便可以顯式設置positions和。widths當 時patch_artist=True,將創建一個矩形(而不僅僅是直線),facecolor可以為其指定 a。manage_ticks=False防止boxplot更改 x 刻度及其限制??梢赃x擇notch=True稍微強調中位數,但根據數據,置信區間可能太大并且看起來很奇怪。


import matplotlib.pyplot as plt

import numpy as np

import pandas as pd

import seaborn as sns


data1 = pd.DataFrame({'pct_gc': np.linspace(0, 0.069, 200), 'MSE': np.random.normal(0.02, 0.1, 200).cumsum()})

data1['pct_range'] = pd.cut(data1['pct_gc'], 10)


fig, ax1 = plt.subplots(ncols=1, figsize=(20, 7))


sns.lineplot(data=data1, y='MSE', x='pct_gc', ax=ax1)


for interval, color in zip(np.unique(data1['pct_range']), plt.cm.tab10.colors):

    ax1.boxplot(data1[data1['pct_range'] == interval]['MSE'],

                positions=[interval.mid], widths=0.4 * interval.length,

                patch_artist=True, boxprops={'facecolor': color},

                notch=False, medianprops={'color':'yellow', 'linewidth':2},

                manage_ticks=False)

plt.show()

https://img1.sycdn.imooc.com//64d1ac7200012df816960592.jpg

查看完整回答
反對 回復 2023-08-08
  • 1 回答
  • 0 關注
  • 221 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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