में stepfilled histtype के साथ matplotlib scatter_hist मैंने दो डेटा सेट प्लॉट करने के लिए here संशोधित scatter_hist.py उदाहरण को संशोधित किया।हिस्टोग्राम
मैं "stepfilled" प्रकार के साथ हिस्टोग्राम रखना चाहता हूं, लेकिन किसी भी तरह से अगर मैं "stepfilled" प्रकार सेट करता हूं तो वाई-अक्ष हिस्टोग्राम (अभिविन्यास = "क्षैतिज") काम नहीं कर रहा है।
क्या "stepfilled" जैसी शैली देखने के लिए हिस्टोग्राम करने का कोई अन्य तरीका है या क्या मैं कुछ गलत कर रहा हूं?
यह विचार दिखाने के लिए कि मैं क्या करने का प्रयास करता हूं, यहां हिस्टटाइप = "बार" के साथ मेरा कोड है। अजीब हिस्टोग्राम पाने के लिए
histtype="stepfilled"
के लिए इसे बदल:
import numpy as np
import matplotlib.pyplot as plt
# the random data
x = np.random.randn(1000)
y = np.random.randn(1000)
x_vals = [x]
y_vals = [y]
x_vals.append(np.random.randn(300))
y_vals.append(np.random.randn(300))
fig = plt.figure(1, figsize=(5.5,5.5))
from mpl_toolkits.axes_grid1 import make_axes_locatable
colour_LUT = ['#0000FF',
'#00FF00']
# the scatter plot:
xymax = np.max(np.fabs(x))
colors = []
axScatter = plt.subplot(111)
for i in range(len(x_vals)):
colour = colour_LUT[i]
xymax = np.max([np.max(np.fabs(x)), np.max(np.fabs(y)), xymax ])
axScatter.scatter(x_vals[i], y_vals[i], color = colour)
colors.append(colour)
axScatter.set_aspect(1.)
# create new axes on the right and on the top of the current axes
# The first argument of the new_vertical(new_horizontal) method is
# the height (width) of the axes to be created in inches.
divider = make_axes_locatable(axScatter)
axHistx = divider.append_axes("top", 1.2, pad=0.1, sharex=axScatter)
axHisty = divider.append_axes("right", 1.2, pad=0.1, sharey=axScatter)
# make some labels invisible
plt.setp(axHistx.get_xticklabels() + axHisty.get_yticklabels(),
visible=False)
# now determine nice limits by hand:
binwidth = 0.25
lim = (int(xymax/binwidth) + 1) * binwidth
bins = np.arange(-lim, lim + binwidth, binwidth)
histtype = "bar"
axHistx.hist(x_vals, bins=bins, histtype= histtype, color=colors)
axHisty.hist(y_vals, bins=bins, orientation='horizontal',histtype= histtype, color=colors)
# the xaxis of axHistx and yaxis of axHisty are shared with axScatter,
# thus there is no need to manually adjust the xlim and ylim of these
# axis.
#axHistx.axis["bottom"].major_ticklabels.set_visible(False)
for tl in axHistx.get_xticklabels():
tl.set_visible(False)
axHistx.set_yticks([0, 50, 100])
#axHisty.axis["left"].major_ticklabels.set_visible(False)
for tl in axHisty.get_yticklabels():
tl.set_visible(False)
axHisty.set_xticks([0, 50, 100])
plt.draw()
plt.show()
मदद के लिए धन्यवाद!
संपादित करें:
यहां छवियों जो मैं matplotlib 1.0.0 के साथ खिड़कियां वातावरण में प्राप्त करते हैं। histtype = "बार" के साथ मैं इस है:
bar histogram image http://i54.tinypic.com/wunjoi.png और histtype साथ = "stepfilled" मैं इस है:
stepfilled histogram image http://oi56.tinypic.com/rstu1j.jpg
हेनिंग के उत्तर के लिए धन्यवाद। Matplotlib का आपका संस्करण क्या है और क्या आप इसे विंडोज़ पर चला रहे हैं? – Tedmu
मैं विंडोज 7 पर पायथन 2.6.6 में matplotlib संस्करण 1.0.0 चला रहा हूँ – Henning