我用下面的python代码生成了这些直方图,它在maptlotlib中看起来很好:
d_norm_1 = np.random.normal(loc=0.0, scale=3.0, size=5000)
## Build a Gaussian Mixture Model:
array1 = np.random.normal(loc=4.0, scale=2.0, size=2000)
array2 = np.random.normal(loc=-5.0, scale=4.0, size=2000)
d_norm_2 = np.concatenate((array1, array2))
fig3 = plt.figure(3, figsize=(8, 6))
ax3 = fig3.add_subplot(1, 1, 1)
plt.hist(d_norm_1, bins=40, normed=True, color='b', alpha=0.4, rwidth=1.0)
plt.hist(d_norm_2, bins=40, normed=True, color='g', alpha=0.4, rwidth=0.8)
plt.xlabel('$x$', size=20)
plt.ylabel('Probability Density', size=20)
plt.title('Histogram', size=20)
plt.setp(ax3.get_xticklabels(), rotation='horizontal', fontsize=16)
plt.setp(ax3.get_yticklabels(), rotation='horizontal', fontsize=16)
plt.show()
但是当我将其导入到情节中时,直方图条被线代替。我认为plotly与这个版本的matplotlib不兼容。
以下是上面显示的相同直方图的图表版本:
https://plot.ly/~vmirjalily/11/histogram/
我正在使用matplotlib 1.4.2
答案 0 :(得分:3)
您的代码直方图正在运行。
你只是错过了最后一步。你的情节显示的是一个分组的条形图。实际情况是,在一列中显示2个条形。
您需要做的是转到
痕迹>模式并更改为“叠加”条形图
这是我的实施
答案 1 :(得分:0)
import matplotlib.pyplot as plt
import numpy as np
import plotly.plotly as py
d_norm_1 = np.random.normal(loc=0.0, scale=3.0, size=5000)
## Build a Gaussian Mixture Model:
array1 = np.random.normal(loc=4.0, scale=2.0, size=2000)
array2 = np.random.normal(loc=-5.0, scale=4.0, size=2000)
d_norm_2 = np.concatenate((array1, array2))
fig3 = plt.figure(3, figsize=(8, 6))
ax3 = fig3.add_subplot(1, 1, 1)
plt.hist(d_norm_1, bins=40, normed=True, color='b', alpha=0.4, rwidth=1.0)
plt.hist(d_norm_2, bins=40, normed=True, color='g', alpha=0.4, rwidth=0.8)
plt.xlabel('$x$', size=20)
plt.ylabel('Probability Density', size=20)
plt.title('Histogram', size=20)
plt.setp(ax3.get_xticklabels(), rotation='horizontal', fontsize=16)
plt.setp(ax3.get_yticklabels(), rotation='horizontal', fontsize=16)
# note the `update` argument, it's formatted as a plotly Figure object
# this says: "convert the figure as best you can, then apply the update on the result"
py.iplot_mpl(fig3, update={'layout': {'barmode': 'overlay'}})
有关更多在线信息,请结帐https://plot.ly/matplotlib/或https://plot.ly/python/
对于python帮助,请结帐help(py.iplot_mpl)
或help(Figure)
有时候确切地看到转换后的内容也很有用,你可以试试这个:
import plotly.tools as tls
pfig = tls.mpl_to_plotly(fig3) # turns the mpl object into a plotly Figure object
print pfig.to_string() # prints out a `pretty` looking text representation