python-3.x - 数据框中的单个图上的多条线
问题描述
我需要绘制按类型划分的电影的平均预算随着时间的推移。我有一个带有和列Genre
的熊猫数据框。我能够为每种类型使用一个图表绘制数据,但我无法让所有图表都落在同一个图表上。这是我用来获取多个图表的代码。Year
Average Budget in Millions
for g in all_genres:
plotgenre = refineddata[refineddata['Genre'].str.contains(g, na=False)]
plotgenre.plot(kind='line',x='Year',y='Average Budget in Millions', label = g)
解决方案
您可以先创建图形和轴,然后使用它们来创建绘图:
np.random.seed(42)
all_genres = ['crime', 'romantic']
refineddata = pd.DataFrame({'Average Budget in Millions':np.random.normal(size=20),
'Year':range(20), 'Genre':np.random.choice(all_genres, 20)})
fig, ax = plt.subplots(1, figsize=(6,4))
for g in all_genres:
plotgenre = refineddata[refineddata['Genre'].str.contains(g, na=False)]
plotgenre.plot(kind='line',x='Year',y='Average Budget in Millions', label = g, ax=ax)
但是如果你可以使用seaborn库,那就更容易了:
import seaborn as sns
sns.lineplot(data=refineddata, x='Year', y='Average Budget in Millions', hue='Genre')
推荐阅读
- rust - 编译器认为借用不是有效的
- reactjs - 文件 App.js 的问题(在组件文件夹中导入新的 .jsx 文件时)
- r - (函数(类,fdef,mtable)中的错误:无法找到签名“mira”的函数“sim”的继承方法
- kubernetes - 使用 nginx 入口控制器在 kubernetes 上公开应用程序 - 裸机方式
- conda - 尽管在 conda-forge 中找到了包,但无法满足 conda 包:包 XXX 需要包 YYY,但无法安装任何提供程序
- c# - 在 .NET 应用程序中加载 Azure Secrets 的最佳方法
- python - 如何在多年的组合中基于月进行算术运算?
- terraform - 翻新:如何覆盖 Terraform 的默认 fileMatch
- php - 发布元字段正在正确更新 woocommerce 自定义字段,但产品页面中未显示相同内容
- python - 如何使用 tornado.web.StaticFileHandler 始终提供 1 个文件?