我正在使用seaborn
进行数据可视化。但是它无法对文档中的示例数据进行故障诊断
import seaborn as sns
sns.set()
tips = sns.load_dataset("tips")
Traceback (most recent call last):
File "databaseConnection.py", line 35, in <module>
tips = sns.load_dataset("tips")
File "C:\python3.7\lib\site-packages\seaborn\utils.py", line 428, in load_dataset
urlretrieve(full_path, cache_path)
File "C:\python3.7\lib\urllib\request.py", line 247, in urlretrieve
with contextlib.closing(urlopen(url, data)) as fp:
File "C:\python3.7\lib\urllib\request.py", line 222, in urlopen
return opener.open(url, data, timeout)
File "C:\python3.7\lib\urllib\request.py", line 525, in open
response = self._open(req, data)
File "C:\python3.7\lib\urllib\request.py", line 543, in _open
'_open', req)
File "C:\python3.7\lib\urllib\request.py", line 503, in _call_chain
result = func(*args)
File "C:\python3.7\lib\urllib\request.py", line 1360, in https_open
context=self._context, check_hostname=self._check_hostname)
File "C:\python3.7\lib\urllib\request.py", line 1319, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [Errno 11001] getaddrinfo failed>
那是因为我在代理服务器后面,但是如何要求seaborn
使用代理服务器?
答案 0 :(得分:1)
您可以手动下载文件。
使用
import seaborn as sns
print(sns.utils.get_data_home())
找出用于存放原始数据的文件夹,例如它可能在Windows上以C:\Users\username\seaborn-data
的形式出现。
将文件https://raw.githubusercontent.com/mwaskom/seaborn-data/master/tips.csv
下载到该文件夹。最后,使用“缓存”选项
sns.load_dataset("tips", cache=True)
答案 1 :(得分:0)
我知道,问题有点老了。但是我一直在寻找类似的解决方案,但我并没有为上述工作(某种程度上)。因此,我在下面的链接中创建了类似/重复的问题:
Not able to resolve issue(HTTP error 404) with seaborn.load_dataset function
然后我通过调试找到了解决方案。详细信息如下:
load_dataset()在'utils.py'库文件中可用,该文件的路径位于硬编码字符串的下方:
path = ("https://raw.githubusercontent.com/mwaskom/seaborn-data/master/{}.csv")
因此,无论我们在load_dataset()函数中提供什么文件名,python都会在线搜索到上面的路径。除上述路径外,没有其他选择,我们可以为数据集提供自己的在线链接。 load_dataset()的第二个参数是'cache',其默认布尔值为'True'。因此,如果未在线找到数据集,则该函数将查找物理路径,如下所示:
<Your Drive>:\Users\<Your User name>\seaborn-data
e.g. C:\Users\user1\seaborn-data
如果在网上找不到此路径,则应具有我们的数据集。也就是说,如果我们实际存在数据集,则以下代码将起作用:
df = sns.load_dataset('FiveYearData')
(注意:但是,如果在线找到数据集,则由于cache = True,它也将被复制到上述路径中。)
我们还可以通过以下第三参数(data_home)为数据集提供不同的物理路径:
df = sns.load_dataset('FiveYearData',data_home=os.path.dirname(os.path.abspath("FiveYearData")))
在这里,我要使用当前的项目工作目录来保存我的数据集。