我正在试图绘制一个热图重叠一个图像,使用海运和matplotlib,如下面的代码所示:
import seaborn as sns
import matplotlib
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import matplotlib.image as mpimg
df = pd.read_csv('/home/diegonachon/eye-tracker/eyedata/csv_heatmap/cl/Suj5_Control_HO_1ph.csv')
df['xpl'] = pd.to_numeric(df['xpl'], errors = 'coerce')
df['ypl'] = pd.to_numeric(df['ypl'], errors = 'coerce')
df = df[(df['event'] == 'FIX') & (~(df['xpl'].isnull()))]
hmax = sns.kdeplot(x = df.xpl, y = df.ypl, cmap="Reds", shade=True, bw_adjust= 0.6, clip = ((0,800), (0,600)),
alpha = 0.6, antialiased = True)
hmax.collections[0].set_alpha(0)
map_img = mpimg.imread('/home/diegonachon/eye-tracker/eyedata/asd.jpg')
plt.imshow(map_img, zorder=0, extent=[0, 800, 0, 600])
# image = plt.imshow(map_img, zorder=0, extent=[0, 800, 0, 600], aspect = 250)
# figure(figsize=(8, 6), dpi=80)
# plt.imsave('test.png', image)
# plt.savefig('fig8_6_80dpi.png')
plt.show()结果:https://imgur.com/a/4rdgCOH
当我试图保存绘图生成时,是和空文件(
谢谢!
发布于 2021-12-22 01:12:04
下面是我对您的代码所做的更改。因为我不能访问你们的数据,所以我用了随机数,但是这会给你们一个想法。有关答案,请参阅大写注释。
import seaborn as sns
import matplotlib
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import matplotlib.image as mpimg
# CREATED FOR TEST
x = np.random.rand(100,)
y = np.random.rand(100,)
fig, ax = plt.subplots(figsize=(10,10)) # YOU CAN MODIFY FIGSIZE FROM HERE
ax = sns.kdeplot(x = x, y = y, cmap="Reds", shade=True, bw_adjust= 0.6,
clip = ((0,800), (0,600)),
alpha = 0.6, antialiased = True)
ax.collections[0].set_alpha(0)
# map_img = mpimg.imread('/home/diegonachon/eye-tracker/eyedata/asd.jpg')
#plt.imshow(map_img, zorder=0, extent=[0, 800, 0, 600])
# image = plt.imshow(map_img, zorder=0, extent=[0, 800, 0, 600],
#aspect = 250)
# figure(figsize=(8, 6), dpi=80)
# plt.imsave('test.png', image)
# plt.savefig('fig8_6_80dpi.png')
# THIS WILL SAVE YOUR IMAGE AS A PNG FILE
plt.savefig('test.png')
plt.show()https://stackoverflow.com/questions/70443123
复制相似问题