python 使用panda从csv像素文件绘制热图

pftdvrlh  于 2022-12-28  发布在  Python
关注(0)|答案(1)|浏览(158)

我想从包含像素位置的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
bqjvbblv

bqjvbblv1#

可以将dtype=float设置为pandas.read_csv的关键字参数:

df = pd.read_csv(path_to_csv, sep='\t', dtype=float)

或者使用pandas.DataFrame.astype

plt.imshow(df.astype(float), cmap='hot', interpolation='nearest', aspect='auto')

plt.show()
输出:

相关问题