python绘图中的四个绘图技巧
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python绘图中的四个绘图技巧相关的知识,希望对你有一定的参考价值。
参考技术A preoverflow-x: auto技巧1: plt.subplots()
技巧2: plt.subplot()
技巧3: plt.tight_layout()
技巧4: plt.suptitle()
数据集:
让我们导入包并更新图表的默认设置,为图表添加一点个人风格。 我们将在提示上使用 Seaborn 的内置数据集:
import seaborn as sns # v0.11.2 import matplotlib.pyplot as plt # v3.4.2 sns.set(style='darkgrid', context='talk', palette='rainbow')df = sns.load\\_dataset('tips') df.head()技巧1: plt.subplots()
绘制多个子图的一种简单方法是使用 plt.subplots() 。
这是绘制 2 个并排子图的示例语法:
fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(10,4)) sns.histplot(data=df, x='tip', ax=ax[0]) sns.boxplot(data=df, x='tip', ax=ax[1]);
在这里,我们在一个图中绘制了两个子图。 我们可以进一步自定义每个子图。
例如,我们可以像这样为每个子图添加标题:
fig, ax = plt.subplots(1, 2, figsize=(10,4)) sns.histplot(data=df, x='tip', ax=ax[0]) ax[0].set\\_title("Histogram") sns.boxplot(data=df, x='tip', ax=ax[1]) ax[1].set\\_title("Boxplot");
在循环中将所有数值变量用同一组图表示:
numerical = df.select\\_dtypes('number').columnsfor col in numerical: fig, ax = plt.subplots(1, 2, figsize=(10,4)) sns.histplot(data=df, x=col, ax=ax[0]) sns.boxplot(data=df, x=col, ax=ax[1]); 技巧2: plt.subplot()另一种可视化多个图形的方法是使用 plt.subplot(), 末尾没有 s
语法与之前略有不同:
plt.figure(figsize=(10,4)) ax1 = plt.subplot(1,2,1) sns.histplot(data=df, x='tip', ax=ax1) ax2 = plt.subplot(1,2,2) sns.boxplot(data=df, x='tip', ax=ax2);
当我们想为多个图绘制相同类型的图形并在单个图中查看所有图形,该方法特别有用:
plt.figure(figsize=(14,4)) for i, col in enumerate(numerical): ax = plt.subplot(1, len(numerical), i+1) sns.boxplot(data=df, x=col, ax=ax)
我们同样能定制子图形。例如加个 title
plt.figure(figsize=(14,4)) for i, col in enumerate(numerical): ax = plt.subplot(1, len(numerical), i+1) sns.boxplot(data=df, x=col, ax=ax) ax.set\\_title(f"Boxplot of col")
通过下面的比较,我们能更好的理解它们的相似处与不同处熟悉这两种方法很有用,因为它们可以在不同情况下派上用场。
技巧3: plt.tight_layout()在绘制多个图形时,经常会看到一些子图的标签在它们的相邻子图上重叠,
如下所示:
categorical = df.select\\_dtypes('category').columnsplt.figure(figsize=(8, 8)) for i, col in enumerate(categorical): ax = plt.subplot(2, 2, i+1) sns.countplot(data=df, x=col, ax=ax)
顶部两个图表的 x 轴上的变量名称被剪掉,右侧图的 y 轴标签与左侧子图重叠.使用 plt.tight_layout 很方便
plt.figure(figsize=(8, 8)) for i, col in enumerate(categorical): ax = plt.subplot(2, 2, i+1) sns.countplot(data=df, x=col, ax=ax) plt.tight\\_layout()
专业 看起来更好了。
技巧4: plt.suptitle()真个图形添加标题:
plt.figure(figsize=(8, 8)) for i, col in enumerate(categorical): ax = plt.subplot(2, 2, i+1) sns.countplot(data=df, x=col, ax=ax) plt.suptitle('Category counts for all categorical variables') plt.tight\\_layout()此外,您可以根据自己的喜好自定义各个图。 例如,您仍然可以为每个子图添加标题。
到此这篇关于python绘图 四个绘图技巧的文章就介绍到这了,希望大家以后多多支持!
几何画板演示正方形拼凑过程的技巧
几何画板作为一款专业的绘图工具,不仅仅可以用来画几何图形,还可以通过其动画功能将图形进行拼凑,组成新的图形。比如是否可以将两个小正方形拼凑成大正方形呢?其实只要满足一定的条件,这样的拼凑也是可以的。下面就来学习在几何画板中制作拼凑正方形的动画技巧。
思路分析:将两个相同的小正方形,按照对角线平分位四个小三角形,这四个小三角形的四个直角顶点重合,直角边两两重合,就能形成新的正方形。
几何画板制作的动态演示正方形的拼凑过程课件样图:
几何画板课件模板——动态演示面积为2的正方形的拼凑过程
在该课件中,点击“拼接”操作按钮,就可以动态演示将小正方形沿对角线剪下,分成2个直角三角形,然后直角三角形会自动移动到右边,然后依次移动其余三个直角三角形到右侧,使4个直角顶点重合,直角边两两重合,这样就可以拼成一个面积为2的正方形,在最右侧。如果想回到初始状态,点击“还原”操作按钮即可。
点击下面的“下载模板”按钮,即可下载该课件,用来动态演示正方形的拼凑过程,给学生们演示如何用2个面积为1的正方形拼凑成面积为2的正方形,加深学生们的理解。其实不仅仅可以用几何画板制作将两个小正方形拼凑成大正方形的动画,还可以制作半圆拼凑动画,具体课件可参考:利用几何画板制作半圆拼凑动画。
几何画板模板下载地址:http://www.jihehuaban.com.cn/rumenji/zhengfangxing-pincou.html
以上是关于python绘图中的四个绘图技巧的主要内容,如果未能解决你的问题,请参考以下文章
Python绘制高斯分布(正态分布)图像,附python绘图技巧
python应用实战系列-深度解析Python常用绘图库的“绘图原理”
Python Qt GUI设计:QPainterQPenQBrush和QPixmap窗口绘图类(基础篇—17)