我正在寻找一种方法来清理我的pyplot散点图中的刻度。
要使用字符串作为元素从Pandas数据集列创建散点图,我按照[2]中的示例 - 给我一个很好的散点图:
输入是10k数据点,其中X轴只有~200个唯一的“名称”,它们与标量相匹配以进行绘图。显然,在x轴上绘制所有10k刻度是有点时钟的。那么,我正在寻找一种方法,只打印每个唯一的滴答一次而不是每个数据点?
我的代码如下:
fig2 = plt.figure()
WNsUniques, WNs = numpy.unique(taskDataFrame['modificationhost'], return_inverse=True)
scatterWNs = fig2.add_subplot(111)
scatterWNs.scatter(WNs, taskDataFrame['cpuconsumptiontime'])
scatterWNs.set(xticks=range(len(WNsUniques)), xticklabels=WNsUniques)
plt.xticks(rotation='vertical')
plt.savefig("%s_WNs-CPUTime_scatter.%s" % (dfName,"pdf"))
实际上,我希望将情节x刻度设置为唯一的名称应该足够了 - 但显然不是吗?可能这很容易,但是如何将我的子图的刻度减少到唯一一次(如果它们还没有被numpy.unique返回的唯一化?)? 也许有人对我有想法?
干杯谢谢, 托马斯
答案 0 :(得分:1)
您可以使用set_xticks
方法来完成此操作。请注意,带有标签的200轴刻度在这样的小图上仍然非常强大,这是您可能已经在上面的代码中看到的。如果没有完整的代码,我不能肯定地说。
此外,WNsUniques
的大小是多少?这可以很容易地用于检查您对unique
的调用是否符合您的想法。