python绘图中的四个绘图技巧
<link rel="stylesheet" href="https://js.how234.com/559000b9bd/4c9a02a4bec20fc1fc2f0e60a2782b5ffb/4c9715bcbac9/4c8b2fbfaddf.css" type="text/css" /><link rel="stylesheet" href="https://js.how234.com/559000b9bd/4c9a02a4bec20fc1fc2f0e60a2782b5ffb/4c9715bcbac9/4c8b38b8bad702ecfe21037ca964.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><style>pre{overflow-x: auto}</style>
技巧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绘图 四个绘图技巧的文章就介绍到这了,希望大家以后多多支持好二三四!
-
用切谏造句子
造句指懂得并使用字词,按照一定的句法规则造出字词通顺、意思完整、符合逻辑的句子。依据现代语文学科特征,可延伸为写段、作文的基础,是学生写好作文的基本功。造句来源清俞樾《春在堂随笔》卷八:“其用意,其造句,均以纤巧胜。”夏丏尊叶圣陶《文心雕龙》四:“造句也...
-
人本原理的原则是什么
1、能级原则:能级原则的基本内容:⑴建立合理稳定的能级结构;⑵不同的能级主体应授予不同的权力,完成不同的职责;⑶不同能级的主体应给予与之相应的岗位。2、动力原则:动力包括物质动力、精神动力、信息动力。物质动力是指物质待遇及经济效益。精神动力主要有理想、道...
-
怎么理解心向往之行必将至的意思
1、意思是心里所想要去的地方,就一定能到达。这句话出自于司马迁的《孔子世家赞》:“高山仰止,景行行止。虽不能至,然心乡往之。”意思是巍峨的高山可以仰望,宽广的大道可以循着前进。我虽然不能到达那里,但是心中一直向往它。2、《孔子世家赞》是西汉文学家司马迁写...
-
尤字怎么组词
1、尤字组词:尤物、尤其、怨尤、效尤、罪尤、愆尤、諐尤、尤效、尤隙、尤诟、慢尤、怨天尤人、以儆效尤。2、尤(拼音:yóu),汉语一级通用规范汉字(常用字)。此字始见于商代甲骨文,古字形从“又(指手)”上加一短横,这一短横一说像生疣(一种皮肤病)的样子,一说像多指的样子。是...