我在Pandas数据框中拥有浮点数数据。每一列代表一个变量(它们具有字符串名称),每一行代表一组值(行具有不重要的整数名称)。
>>> print data
0 kppawr23 kppaspyd
1 3.312387 13.266040
2 2.775202 0.100000
3 100.000000 100.000000
4 100.000000 39.437420
5 17.017150 33.019040
...
我想为每一列绘制直方图。我已经使用数据框的hist方法取得了最好的结果:
data.hist(bins=20)
但我希望每个直方图的x轴都是对数10比例尺。并且每个箱子也要使用对数10比例尺,但使用bins=np.logspace(-2,2,20)很容易实现。
一种解决方法可能是在绘图之前对数据进行log10变换,但我尝试过的方法不起作用,
data.apply(math.log10)
和
data.apply(lambda x: math.log10(x))
给我一个浮点数错误。
"cannot convert the series to {0}".format(str(converter)))
TypeError: ("cannot convert the series to <type 'float'>", u'occurred at index kppawr23')
plt.gcf().tight_layout()
; 我已经编辑了上面的帖子。你可以尝试使用multiprocessing
模块将工作分配给处理器以加快速度。Python Module of the Week 的 multiprocessing 教程 是一个不错的起点。 - unutbu