python - 如何使用seaborn从数据文件制作hexbin图?

标签 python matplotlib plot

我对使用 matplotlib 和 seaborn 还很陌生,而且我真的找不到任何关于如何做到这一点的“傻瓜”指南。我在尝试使用我能找到的指南中的代码时不断收到错误消息。我想我很难接受他们的代码并知道如何将其应用于我的问题。

我想制作一个像这里这样的情节:12 。我有一个数据文件,其中有两列数据,范围从 -180 到 180。

这是我对代码的尝试:

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from scipy.stats import kendalltau

sns.set(style="ticks")

f2 = open("dihs23")
lines = f2.readlines()
f2.close()
x = []
y = []
for line in lines:
    p = line.split()
    x.append(float(p[0]))
    y.append(float(p[1]))


sns.jointplot(x, y, kind="hex", stat_func=kendalltau, color="#4CB391")

sns.plt.show()

返回错误

Traceback (most recent call last):
  File "heatmap.py", line 30, in <module>
    sns.jointplot(x, y, kind="hex", stat_func=kendalltau, color="#4CB391")
  File "/usr/local/lib/python2.7/dist-packages/seaborn/distributions.py", line 973, in jointplot
    xlim=xlim, ylim=ylim)
  File "/usr/local/lib/python2.7/dist-packages/seaborn/axisgrid.py", line 1133, in __init__
    x = x[not_na]
TypeError: only integer arrays with one element can be converted to an index

我猜测数据格式的某些方面是问题的一部分,但我不确定如何解决它。

感谢您的帮助!

最佳答案

尝试使用 NumPy 将列表转换为数组

x_axis = np.asarray(x)
y_axis = np.asarray(y)

关于python - 如何使用seaborn从数据文件制作hexbin图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32514360/

相关文章:

R:水平条形图,每个条形旁边都有 y Axis 标签

python - 如何用python selenium点击下载

python - 如何重命名 conda 环境?

python - 格式化数字以在 Python 中的 plt.colorbar() 上有一个逗号

r - 如何使用彩色置信区间带绘制回归原始比例的回归图?

R:在一页上打印多种类型的图

python appengine unicodeencodeerror on search api snippeted results

python - 我如何在 Xorg 中获取窗口的图标名称?

python - 使用 cartopy 和 pyresample 投影卫星图像的差异

python - 如何为极坐标图中的圆形线着色(matplotlib)