簡體   English   中英

軸內特定坐標的直方圖

[英]Histogram at specific coordinates inside axes

我想用Python 3.6實現的是這樣的: 直方圖和散點在同一軸上

顯然是用油漆制成的,並且在xAxis上缺少一些刻度。 這樣的事情可能嗎? 本質上,我是否可以精確控制直方圖的繪制位置(以及方向)?

我特別希望它們與上圖一樣在相同的軸上,而不是在單獨的軸或子圖上。

fig = plt.figure()
ax2Handler = fig.gca()
ax2Handler.scatter(np.array(np.arange(0,len(xData),1)), xData)
ax2Handler.hist(xData,bins=60,orientation='horizontal',normed=True)

這種和其他方法(使軸反轉)都沒有結果。 xData是從熊貓數據幀加載的。

# This also doesn't work as intended
fig = plt.figure()
axHistHandler = fig.gca()
axScatterHandler = fig.gca()
axHistHandler.invert_xaxis()
axHistHandler.hist(xData,orientation='horizontal')
axScatterHandler.scatter(np.array(np.arange(0,len(xData),1)), xData)

A.使用兩個軸

根本沒有理由不使用兩個不同的軸。 可以很容易地使用兩個不同的軸來復制問題中的圖:

import numpy as np
import matplotlib.pyplot as plt
plt.style.use("ggplot")
xData = np.random.rand(1000)

fig,(ax,ax2)= plt.subplots(ncols=2, sharey=True)
fig.subplots_adjust(wspace=0)

ax2.scatter(np.linspace(0,1,len(xData)), xData, s=9)
ax.hist(xData,bins=60,orientation='horizontal',normed=True)
ax.invert_xaxis()
ax.spines['right'].set_visible(False)
ax2.spines['left'].set_visible(False)
ax2.tick_params(axis="y", left=0)

plt.show()

在此處輸入圖片說明

B.使用單軸

只是為了回答這個問題:為了在同一根軸上繪制兩個圖形,可以將條形圖的長度向左移動,從而有效地繪制出鏡像的直方圖。

import numpy as np
import matplotlib.pyplot as plt
plt.style.use("ggplot")
xData = np.random.rand(1000)

fig,ax= plt.subplots(ncols=1)
fig.subplots_adjust(wspace=0)

ax.scatter(np.linspace(0,1,len(xData)), xData, s=9)
xlim1 = ax.get_xlim()
_,__,bars = ax.hist(xData,bins=60,orientation='horizontal',normed=True)

for bar in bars:
    bar.set_x(-bar.get_width())

xlim2 = ax.get_xlim()
ax.set_xlim(-xlim2[1],xlim1[1])

plt.show()

在此處輸入圖片說明

您可能對海底聯合繪圖感興趣:

# Import and fake data
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
data = np.random.randn(2,1000)
# actual plot
jg = sns.jointplot(data[0], data[1], marginal_kws={"bins":100})
jg.ax_marg_x.set_visible(False) # remove the top axis
plt.subplots_adjust(top=1.15) # fill the empty space

產生這個: 在此處輸入圖片說明

請參閱Seaborn中提供的更多的雙變量分布表示示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM