用Python绘制图形有什么实用技巧
Admin 2022-05-20 群英技术资讯 1206 次浏览
这篇文章主要介绍“用Python绘制图形有什么实用技巧”,有一些人在用Python绘制图形有什么实用技巧的问题上存在疑惑,接下来小编就给大家来介绍一下相关的内容,希望对大家解答有帮助,有这个方面学习需要的朋友就继续往下看吧。让我们导入包并更新图表的默认设置,为图表添加一点个人风格。 我们将在提示上使用 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()

绘制多个子图的一种简单方法是使用 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]);
另一种可视化多个图形的方法是使用 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}")

通过下面的比较,我们能更好的理解它们的相似处与不同处熟悉这两种方法很有用,因为它们可以在不同情况下派上用场。
在绘制多个图形时,经常会看到一些子图的标签在它们的相邻子图上重叠,
如下所示:
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()

专业 看起来更好了。
真个图形添加标题:
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()
此外,您可以根据自己的喜好自定义各个图。 例如,您仍然可以为每个子图添加标题。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了python数据操作之lambda表达式详情,文章基于python的相关资料展开lambda表达式具体的内容,感兴趣的小伙伴可以参考一下
这篇文章主要介绍了Python pluggy模块的用法,pluggy提供了一个简易便捷的插件系统,可以做到插件与主题功能松耦合,pluggy 是pytest,tox,devpi的核心框架文中通过代码示例演示给大家详细介绍,需要的朋友参考下吧
我们知道一个游戏项目的发布,是经过开发人员不断的测试才得以上线的。测试对于开发人员来说至关重要。那么如何简洁的显示已测试的内容,并允许开发人员从日常执行中提取有用信息呢?
这篇文章主要为大家详细介绍了python实现简单的飞机大战游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下<BR>
最近在做一个爬虫相关的项目,单线程的整站爬虫,耗时真的不是一般的巨大,运行一次也是心累,所以,要想实现整站爬虫,多线程是不可避免的,那么python多线程又应该怎样实现呢?今天小编给大家分享下实现代码,感兴趣的朋友一起看看吧
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008