为了账号安全,请及时绑定邮箱和手机立即绑定

seaborn 热图的自定义刻度

seaborn 热图的自定义刻度

12345678_0001 2021-08-14 19:28:50
我有一些数据想要绘制为热图,它本质上是一个 50x50 的 numpy 数组。因此,热图轴标签的范围从 0 到 50,但实际上我希望轴标签从 -114 到 114,因为这是数据的范围。然而,当我设置刻度标签时,它们最终会聚集在轴上(见图)。当我把线ax.set_xticks(ticks)ax.set_yticks(ticks)热图最终被缩放(见图)。我已经输入了我的代码和一些示例数据,也许有人可以发现我做错了什么。import sysimport numpy as npimport pandas as pdimport matplotlibimport matplotlib.pyplot as pltimport osimport cv2 as cvimport seaborn as sns;filepath = sys.argv[1]drive, path_and_file = os.path.splitdrive(filepath)path, file = os.path.split(path_and_file)line_width = 3font = {'family' : 'sans',        'weight' : 'normal',        'size'   : 18}matplotlib.rc('font', **font)bagnames = ["hex_events_only.bag"]groundtruth = [-92, 0]noise_levels = ["-1.000000"]rewards = ["sos"]gt_angle = np.arctan2(groundtruth[0], groundtruth[1])gt_mag = np.linalg.norm(groundtruth, axis=0)print(gt_angle, gt_mag)for bagname in bagnames:    print "==========", bagname, "=========="    for reward in rewards:        print "      ---", reward, "---       "        for noise_level in noise_levels:                filename = filepath + "data_field_" + bagname + "_" + reward + "_" + noise_level                print filename                n_samples = (pd.read_csv(filename, delimiter="\t", skiprows=1, names=["vx", "vy", "measure"])).values                x = n_samples[:, 0]                y = n_samples[:, 1]                z = n_samples[:, 2]                yrange = int(np.ptp(x))                xrange = int(np.ptp(y))                x_values = np.unique(x).size                y_values = np.unique(y).size                num_ticks = 10                ticks = np.linspace(int(-yrange/2.), int(yrange/2.), num_ticks, dtype=np.int)                img = np.reshape(z, (x_values, y_values))                img = img.T                img = cv.resize(img, (yrange, xrange))                savename = filepath + "hmap_" + bagname + "_" + reward + "_" + noise_level
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 667 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号