【问题标题】:Plot resize and saving empty绘图调整大小并保存为空
【发布时间】:2022-01-23 07:52:15
【问题描述】:

我正在尝试使用 seaborn 和 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

  1. 第一件事是我无法调整它的大小,我尝试更改“aspect”和“figsize”,但没有任何反应(如评论中显示的代码)

  2. 当我尝试保存绘图生成时,要么是空文件 (savefig),要么是错误(取消注释 image = plt.imswho()....) - AttributeError: 'tuple' object has no attribute 'shape' )

谢谢!

【问题讨论】:

    标签: python matplotlib plot seaborn


    【解决方案1】:

    这是我对您的代码所做的更改。由于我无权访问您的数据,因此我使用了随机数,但这会给您带来想法。请参阅大写 cmets 以获取答案。

    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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-27
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      相关资源
      最近更新 更多