我想从包含像素位置的csv文件中绘制一个热图。此csv文件具有以下形状:
0 0 8.400000e+01
1 0 8.500000e+01
2 0 8.700000e+01
3 0 8.500000e+01
4 0 9.400000e+01
5 0 7.700000e+01
6 0 8.000000e+01
7 0 8.300000e+01
8 0 8.900000e+01
9 0 8.500000e+01
10 0 8.300000e+01
我试着用Python写了一些行,但是它返回了一个错误,我猜是第三列的格式,其中包含字符串,有没有办法绘制这种文件?
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
path_to_csv= "/run/media/test.txt"
df= pd.read_csv(path_to_csv ,sep='\t')
plt.imshow(df,cmap='hot',interpolation='nearest')
plt.show(df)
我也尝试过海运,但没有成功。下面返回错误:
TypeError: Image data of dtype object cannot be converted to float
1条答案
按热度按时间bqjvbblv1#
可以将
dtype=float
设置为pandas.read_csv
的关键字参数:或者使用
pandas.DataFrame.astype
:输出: