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()
添加回答
舉報