用seaborn对数据可视化
2024-08-31 17:57:21
以下用sns作为seaborn的别名
1.seaborn整体布局设置
sns.set_syle()函数设置图的风格,传入的参数可以是"darkgrid", "whitegrid", "dark", "white", "ticks", 分别代表五种风格。sns.despine()可以去掉右边和上面的边线。
下面的代码画出五种风格的图
import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt def sinplot(ax):
x = np.linspace(, , )
for i in range():
y = np.sin(x+i*)*(-i)
ax.plot(x, y) style = ["darkgrid", "whitegrid", "dark", "white", "ticks"]
print(style[]) plt.figure(figsize=(, ))
for i in range():
sns.set_style(style[i]) #设置样式一定要在子图的定义之前!!!!!!!
ax = plt.subplot(, , i+)
ax.set_title(style[i])
sinplot(ax) plt.show()
运行结果如下
2.关于seaborn设置样式是针对哪个图形区(subplot)的问题
下面是我做的一个实验性的代码
import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt fig = plt.figure(figsize=(,))
x = np.linspace(, *np.pi, )
y = np.sin(x)
ax_sin = plt.subplot(, , )
sns.set() #根据就近原则,这里的set操作是针对最近未定义的图形区ax_cos的
sns.despine(offset=) #根据就近原则,这里的despine操作是针对最近定义的图形区ax_cos的
plt.plot(x, y) #根据就近原则,这里的plot操作是针对最近定义的图形区ax_sin的
z = np.cos(x)
ax_cos = plt.subplot(, , )
plt.plot(x, z) #根据就近原则,这里的plot操作是针对最近定义的图形区ax_cos的
plt.show()
运行结果如下,根据运行结果可以推测,seaborn的despine操作和pyplot的plot操作都是在最近已经定义的图形区上,例如代码12,13行是在ax_sin上操作的,而11行的set是在即将定义的图形区上操作,
即ax_cos上操作。至于为什么会有这个规律以及有没有相关总结,关于哪些操作是在最近已经定义的图形区上还是在即将定义的图形区上进行暂时我还不清楚,希望有大神能指点一下。
3.上面的问题可以用with语句解决了嘻嘻
放代码
import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt fig = plt.figure(figsize=(,))
x = np.linspace(, *np.pi, )
y = np.sin(x)
with sns.axes_style("darkgrid"):
ax_sin = plt.subplot(, , )
sns.despine(offset=) #根据就近原则,这里的despine操作是针对最近定义的图形区ax_cos的
plt.plot(x, y) #根据就近原则,这里的plot操作是针对最近定义的图形区ax_sin的
with sns.axes_style("whitegrid"):
z = np.cos(x)
ax_cos = plt.subplot(, , )
plt.plot(x, z) #根据就近原则,这里的plot操作是针对最近定义的图形区ax_cos的
plt.show()
运行结果如下
4.set_context()函数,可以传四个参数"paper", "talk", "notebook", "poster",用于设置坐标轴风格
5.后面偷懒不记了,感觉这个以后用的不多,关于该课程的知识点这个简书链接可以看到:
https://www.jianshu.com/p/8ccfcd6e4d25
最新文章
- 二十二、Java基础--------GUI入门
- oracle 存储过程 包 【转】
- fiddler的使用
- 在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法
- WPF学习笔记-TextBox光标位置如何放到最后?
- 【转】linux内核调试技巧之一 dump_stack
- detach() 与remove()
- java类加载时执行顺序
- linux 查看命令总结
- propertychange事件导致的IE浏览器堆栈溢出
- [HAOI2018]苹果树
- Hibernate or 的用法
- H5公共样式,用于所有H5开发页面
- Linux IPC BSD socket编程基础
- position:relative与position:absolute 区别
- js-权威指南学习笔记7
- rails下mysql出错问题mysql_api,blog/text
- 让UIButton在按下时没有高亮效果
- react 拖拽排序---原生
- codeforces 1000F One Occurrence(线段树、想法)
热门文章
- robots.txt防止向黑客泄露网站的后台和隐私
- maven pom文件标签含义
- C语言做的句柄程序
- PHP连接mongodb的现代用法---使用Monogodb\Driver\Manager
- eclipse修改代码后都需要clean的解决办法
- python selenium 相关操作
- 【leetcode】1220. Count Vowels Permutation
- 【leetcode】1190. Reverse Substrings Between Each Pair of Parentheses
- 对Serverless的研究
- css---一个大div中套左右两个div,如何让最高的把最低的撑开?且把父级撑开呢?