我尝试用这个answer创建图表。我愿意接受任何可行的解决方案。
视觉借用原始问题:
与这个问题不同的是,我已经计算了我的仓和频率值,所以我不使用numpy
或matplotlib
来计算。
下面是我的示例数据,我在下面的示例代码中将其称为df_fd
:
low_bin high_bin frequency
0 13.142857 18.857143 3
1 18.857143 24.571429 5
2 24.571429 30.285714 8
3 30.285714 36.000000 8
4 36.000000 41.714286 7
5 41.714286 47.428571 7
6 47.428571 53.142857 1
7 53.142857 58.857143 1
基于引用的问题,下面是我的代码(df_fd
是上面的DataFrame
):
fig, ax = plt.subplots()
ax.bar(df_fd.low_bin, df_fd.frequency, width= df_fd.high_bin-df_fd.low_bin)
X,Y = np.meshgrid(bins, df_fd['frequency'])
Y = Y.astype(np.float)
Y[Y>df_fd['frequency']] = np.nan
plt.scatter(X,Y)
这个Y[Y>df_fd['frequency']] = np.nan
语句失败了,我不知道如何绕过它。我明白它要做什么,我最好的猜测是将矩阵索引Map到DataFrame索引会有所帮助,但我不确定如何做到这一点。
谢谢你帮我!
1条答案
按热度按时间o4hqfura1#
一个使用散点图的简单解决方案:
它的工作原理是将低/高的平均值作为X值,然后重复行的次数与“频率”值相同,并使用
groupby.cumcount
递增计数。输出: