Tôi có dữ liệu dấu chấm động trong một khung dữ liệu Pandas. Mỗi cột đại diện cho một biến (chúng có tên chuỗi) và mỗi hàng một tập hợp các giá trị (các hàng có tên số nguyên không quan trọng).Muốn lập biểu đồ Pandas Dataframe dưới dạng Nhiều Biểu đồ có trục x tỷ lệ log10
>>> 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
...
Tôi muốn vẽ biểu đồ cho mỗi cột. Kết quả tốt nhất mà tôi đã đạt được là với phương pháp lịch sử của dataframe:
data.hist(bins=20)
nhưng tôi muốn trục x của mỗi biểu đồ trên thang log10. Và các thùng cũng có quy mô log10, nhưng điều đó là đủ dễ dàng với thùng = np.logspace (-2,2,20).
Một cách giải quyết có thể là để log10 chuyển đổi dữ liệu trước khi âm mưu, nhưng cách tiếp cận tôi đã cố gắng,
data.apply(math.log10)
và
data.apply(lambda x: math.log10(x))
cho tôi một lỗi dấu chấm động.
"cannot convert the series to {0}".format(str(converter)))
TypeError: ("cannot convert the series to <type 'float'>", u'occurred at index kppawr23')
Cảm ơn! Tôi không biết về ravel(). Tôi cũng chưa từng đi sâu vào đâu. Tôi đã cố gắng tập trung vào gấu trúc vì nó nếu đọc rất nhanh trong các tập dữ liệu lớn. –
Nhân tiện, có cách nào để tăng tốc nó không? Tôi có 219 biểu đồ để sản xuất và phải mất vài phút (chạy trong chế độ gỡ lỗi trong phiên bản cộng đồng PyCharm). –
Và tôi có thể áp dụng tight_layout vào data.hist bằng cách nào đó? –