2016-09-07 93 views
3

我想從直方圖中刪除垂直條輪廓,但保留直方圖的「蝕刻」(如果這樣做的話)。Python - 從直方圖中刪除垂直條線

import matplotlib.pyplot as plt 
import numpy as np 

bins = 35 

fig = plt.figure(figsize=(7,6)) 
ax = fig.add_subplot(111) 

ax.hist(subVel_Hydro1, bins=bins, facecolor='none', 
     edgecolor='black', label = 'Pecuiliar Vel') 
ax.set_xlabel('$v_{_{B|A}} $ [$km\ s^{-1}$]', fontsize = 16) 
ax.set_ylabel(r'$P\ (r_{_{B|A}})$', fontsize = 16) 
ax.legend(frameon=False) 

給予

enter image description here

這是可行的matplotlibs直方圖功能?我希望我提供足夠的清晰度。

+0

名稱說水平的,體說是垂直的。你可能想糾正其中的一個。 – Lafexlos

+0

@Lafexlos我的歉意,這是一個漫長的早晨。 – DarthLazar

+0

您是否爲直方圖和背景設置了相同的顏色?如果您可以用與線條相同的顏色填充條紋,創建「輪廓」效果將非常簡單。 – benten

回答

5

pyplot.hist()中,您可以設置值爲histtype = 'step'。示例代碼:

import matplotlib as mpl 
import matplotlib.pyplot as plt 
import numpy as np 

x = np.random.normal(0,1,size=1000) 

fig = plt.figure() 
ax = fig.add_subplot(111) 

ax.hist(x, bins=50, histtype = 'step', fill = None) 



plt.show() 

示例輸出:

enter image description here