我使用了seaborn 画图,加载数据的时候出现了下面的这个错误提示:
IndexError: single positional indexer is out-of-bounds
我先按照seaborn 给的教程试了一下,竟然出错了,它的教程是这么弄的
import seaborn as sns; sns.set()
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
ax = sns.scatterplot(x="total_bill", y="tip", data=tips)
它的 sns.load_dataset(“tips”) 括号里面的这个是一个csv 文件,名字就叫“tips.csv”,记录了支付的总金额和小费的关系. 具体的格式如下图所示:
这个例子代码是可以通过的,但是我自己的数据集就比较大了,所以运行的时候就报错了
看代码的时候似乎是限制了index的大小? 可能是我自己的数据集横坐标和纵坐标的大小差异太大了。怎么办呢,问题总是要解决的。观察我们的画图函数
ax = sns.scatterplot(x="total_bill", y="tip", data=tips)
需要给两组数据,每个都是一个一维向量。
所以这个时候我就用pandas 来处理我们的数据,我们还是用tips.csv 这个数据来举例子。
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
path = "./tips.csv"
df = pd.read_csv(path)
x_ = df["total_bill"]
y_ = df["tip"]
ax = sns.scatterplot(x=x_, y = y_, data=df)
plt.show()
这样问题就解决了,主要问题就是seaborn 加载数据的函数自己有一些bug,但是画图的这个函数只要数据给对了就没有问题了。