《python数据分析基础》第6.4 seaborn的第三个图“成对变量之间的散点图与单变量直方图”
'''成对变量散点图和单变量直方图'''
iris = sns.load_dataset('iris')
sns.pairplot(iris)
在写这个代码时就存在一个疑惑,这个图的代码怎么没有数据或者说值,其他的可视化的图都会有值的导入,即使没有现成数据,也会使用pandas进行随机生成,例如
mean, cov = [5, 10], [(1, .5), (.5, 1)]
data = np.random.multivariate_normal(mean, cov, 200)
print(data)
但是这里的不存在值,后来发现这个值是通过网络连接seaborn-data导入的
而在此处就遇到了这个问题
当我使用plt.show()时出现报错
urllib.error.URLError:
指向requests.py的第1319行
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\urllib\request.py", line 1319, in do_open
raise URLError(err)
原本以为是seaborn与requests之间对于方法名称的不一致,但是requests一直在用都没有问题,而报错中没有提到seaborn的错误,其错误直接指向requests
于是我对requests.py进行了修改,将raise URLError(err)注释掉并添加pass
try:
try:
h.request(req.get_method(), req.selector, req.data, headers,
encode_chunked=req.has_header('Transfer-encoding'))
except OSError as err: # timeout error
pass
#raise URLError(err)
r = h.getresponse()
except:
h.close()
raise
但是没有效果,报错:
AttributeError: 'NoneType' object has no attribute 'makefile'
经过网上查找,发现许多文章都说[Errno 11004] getaddrinfo failed 是dns的问题,于是我想到之前看到的,seaborn的值值是通过网络连接seaborn-data导入的,因而是不是有可能是在requests seaborn-data时网络的问题或者是被屏蔽了。被屏蔽了就要解除屏蔽。解决屏蔽的方法很简单(但是这个垃圾网站审核不能通过!!!!)
然而,当我重新测试时有突然可以了,所以可能不是被屏蔽了,而是网络、代理、dns之类的问题。
但是,我再次制作箱线图时,又出现了这个问题,一模一样的报错
还增加了两个问题
结论:看来这可能不是dns,而是被屏蔽了,后两个问题并不是问题,只是屏蔽和网络延迟导致的问题
现在成功了
[1] https://blog.csdn.net/jiangyunsheng147/article/details/79420515? ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158822468019724846460925%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.57662%2522%257D&request_id=158822468019724846460925&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog 2allfirst_rank_v2~rank_v25-2