python3之seaborn库
有时间看下seaborn库,写一些demo记录下
import numpy as np import seaborn as sns import matplotlib.pyplot as plt fig = plt.figure(figsize=(20, 10)) # 解决中文不显示和负号不显示问题 rc = {"font.family": "Microsoft YaHei", "axes.unicode_minus": False} sns.set(style="darkgrid", palette="muted", color_codes=True, rc=rc) # 设置横纵轴的显示以及字体大小 sns.set(style="ticks") # 实例程序 加载示例数据集 tips = sns.load_dataset("tips")
保存
plt.savefig("../../files/gen/plot.jpg") # plt.savefig("../../files/gen/plot.pdf", dpi=200, bbox_inches="tight")
seaborn库将图大致分为三类:relational、distributions、categorical
relational
sns.relplot(x="total_bill", y="tip", data=tips, hue="sex", style="time") plt.title("relplot", loc="center")
plt.subplot(2, 1,1) sns.scatterplot(x="tip", y="total_bill", hue="sex", style="time", data=tips) plt.title("scatter plot", loc="center") plt.subplot(2, 1,2) sns.lineplot(x="tip", y="total_bill", hue="sex", style="time", data=tips) plt.title("line plot", loc="center")
distributions
sns.displot(tips["total_bill"]) plt.title("displot", loc="center")
# 直方图 plt.subplot(3, 1,1) sns.histplot(tips["total_bill"]) plt.title("hist plot", loc="center") plt.subplot(3, 1,2) sns.rugplot(tips["total_bill"]) plt.title("rug plot", loc="center") # 密度曲线图 plt.subplot(3, 1, 3) sns.kdeplot(tips["total_bill"], fill=True) plt.title("kde plot", loc="center")
categorical
# 分面网格分类图 sns.catplot(x="day", y="tip", hue="sex", col="time", row="smoker", kind="bar", data=tips) plt.title("catplot", loc="center")
# 箱型图 plt.subplot(9, 1, 1) sns.boxplot(x="day", y="total_bill", data=tips) plt.title("Box plot", loc="center") plt.subplot(9, 1, 2) sns.boxplot(x="day", y="total_bill", data=tips, hue="sex") plt.title("Box plot with group", loc="center") # voilin plot和box plot很相似,但它结合了box plot图和密度痕迹 plt.subplot(9, 1, 3) sns.violinplot(x="day", y="total_bill", data=tips) plt.title("voilin plot", loc="center") plt.subplot(9, 1, 4) sns.violinplot(x="day", y="total_bill", data=tips, hue="sex", split=True) plt.title("voilin plot with group", loc="center") # 扰动点图 plt.subplot(9, 1, 5) sns.stripplot(x="day", y="total_bill", data=tips) plt.title("strip plot", loc="center") plt.subplot(9, 1, 6) sns.stripplot( x="day", y="total_bill", data=tips, jitter=True, hue="sex", dodge=True ) plt.title("strip plot with group", loc="center") # Swarn plot和stripplot比较类似,但Swarn plot的不同之处在于它不会重叠数据点 plt.subplot(9, 1, 7) sns.swarmplot(x="day", y="total_bill", data=tips) plt.title("Swarn plot", loc="center") plt.subplot(9, 1, 8) sns.pointplot(x="day", y="total_bill", data=tips, estimator=np.mean) plt.title("point plot", loc="center") # 条形图 plt.subplot(9, 1, 9) sns.barplot(x="day", y="total_bill", data=tips, estimator=np.mean) plt.title("bar plot", loc="center")
# 联合分布 sns.jointplot(x="total_bill", y="tip", data=tips)
# 相关性图 sns.pairplot(tips)
# 成对关系网格子图 g = sns.PairGrid(tips) # 指定对角线上子图的绘图方法 g.map_diag(sns.histplot) # 指定非对角线上子图的绘图方法 # g.map_offdiag(sns.histplot) # 指定上三角子图的绘图方法 g.map_upper(plt.scatter) # 指定下三角子图的绘图方法 g.map_lower(sns.kdeplot)
# 多面网格子图 g = sns.FacetGrid(tips, col="day", row="time", hue="sex") g.map(sns.histplot, "total_bill")
sns.lmplot(x="total_bill", y="tip", data=tips) plt.title("lmplot", loc="center")
# 相关性热力图 热力图可用来显示两变量之间的相关性,颜色越浅,代表两者之间越具有相关性。 i += 1 plt.subplot(N, 1, i) sns.heatmap(tips.corr(numeric_only=True)) plt.title("heat plot", loc="center") # 计数 i += 1 plt.subplot(N, 1, i) sns.countplot(x="day", data=tips) plt.title("count plot", loc="center")
分类:
python3
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix