使用matplotlib绘制点图时,我想偏移重叠的数据点以使它们全部可见.例如,如果我有
CategoryA: 0,0,3,0,5
CategoryB: 5,10,5,5,10
Run Code Online (Sandbox Code Playgroud)
我希望每个CategoryA
"0"数据点并排设置,而不是彼此重叠,同时仍然保持不同CategoryB
.
在R(ggplot2
)中有一个"jitter"
选项可以做到这一点.在matplotlib中是否有类似的选项,还是有另一种方法可以导致类似的结果?
编辑:为了澄清, R中的"beeswarm"
情节基本上是我的想法,并且pybeeswarm
是matplotlib/Python版本的早期但有用的开始.
编辑:添加版本0.7中引入的Seaborn的 Swarmplot,是我想要的一个很好的实现.
我有一个scipy/numpy的Nx3矩阵集合,我想对它进行三维散射,其中X和Y轴由矩阵的第一列和第二列的值确定,每个条的高度是矩阵中的第三列,条数由N确定.
每个矩阵代表一个不同的数据组,我希望每个矩阵都用不同的颜色绘制,然后为整个图形设置图例.
我有以下代码:
fig = pylab.figure()
s = plt.subplot(1, 1, 1)
colors = ['k', "#B3C95A", 'b', '#63B8FF', 'g', "#FF3300",
'r', 'k']
ax = Axes3D(fig)
plots = []
index = 0
for data, curr_color in zip(datasets, colors):
p = ax.scatter(log2(data[:, 0]), log2(data[:, 1]),
log2(data[:, 2]), c=curr_color, label=my_labels[index])
s.legend()
index += 1
plots.append(p)
ax.set_zlim3d([-1, 9])
ax.set_ylim3d([-1, 9])
ax.set_xlim3d([-1, 9])
Run Code Online (Sandbox Code Playgroud)
问题是ax.scatter用透明度绘制东西,我想删除它.另外,我想设置xticks和yticks以及zticks - 我该怎么做?
最后,即使我为每个分散调用调用label ="",也不会出现图例调用.如何才能显示传奇?
非常感谢您的帮助.