2 回答
TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊
這是一個(gè)笨拙的解決方案,但您可以將x軸向左移動(dòng)寬度的一半:
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sb
f,[ax_heat,ax_line]=plt.subplots(nrows=2,figsize=(10, 8),sharex=True)
data_heat = np.random.rand(4, 6)
data_line = np.random.randn(6,1)
# generalizable code regardless of spacing:
ax = sb.heatmap(data=data_heat,robust=True, center=0,cbar=False, ax=ax_heat)
width = ax.get_xticks()[1] - ax.get_xticks()[0]
new_ax = ax.get_xticks() - 0.5*width
ax.set_xticks(new_ax)
sb.lineplot(data=data_line, ax=ax_line)
plt.show()
TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊
要將兩個(gè)繪圖的刻度線從 x 軸原點(diǎn)開(kāi)始,只需在代碼末尾添加以下行:
plt.xticks(plt.xticks()[0] - 0.5)
解釋:
plt.xticks()返回 x-tick 位置和標(biāo)簽,因此我們可以通過(guò)索引來(lái)訪問(wèn)這些位置。事實(shí)證明,這只是一個(gè)連續(xù)整數(shù)值的列表,因此我們可以通過(guò)減去0.5將它們向左移動(dòng)半個(gè)級(jí)別。[0]
(部分復(fù)制自我對(duì)另一個(gè)問(wèn)題的回答)
添加回答
舉報(bào)
