首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用matplotlib绘制多个方格图

使用matplotlib绘制多个方格图
EN

Stack Overflow用户
提问于 2021-12-10 19:15:11
回答 1查看 203关注 0票数 1

我有一份数据看起来是这样的:

  1. 具有城市名称、纬度和经度的DataFrame:
代码语言:javascript
复制
import pandas as pd

city = {'Name': ['San Franciso', 'Paris', 'Tokyo', 'London', 'Barcelona'], 'Latitude': [50.69460297, 43.64984221, 60.5331547, 62.5331547, 63.5331547],'Longtitude': [41.43147227, 49.78045496691, 122.23536080538, 19.78045496691, 29.78045496691]}

city_df = pd.DataFrame(city)
  1. 看起来像这样的5个DataFrame的列表:
代码语言:javascript
复制
list1= [[1,"kids",0.00094], [2,"adult",0.0012], [3,"elderly",0.00114],[5,"kids",0.00088], [6,"adult",0.00113], [7,"elderly",0.00105]]
l1 = pd.DataFrame(list1)

list2= [[1,"kids",0.00044], [2,"adult",0.0012], [3,"elderly",0.00114],[5,"kids",0.00088], [6,"adult",0.00113], [7,"elderly",0.00105]]
l2 = pd.DataFrame(list2)

list3= [[1,"kids",0.00394], [2,"adult",0.0012], [3,"elderly",0.00114],[5,"kids",0.00588], [6,"adult",0.00113], [7,"elderly",0.00105]]
l3 = pd.DataFrame(list3)

list4= [[1,"kids",0.00074], [2,"adult",0.0012], [3,"elderly",0.00114],[5,"kids",0.00088], [6,"adult",0.00113], [7,"elderly",0.00105]]
l4 = pd.DataFrame(list4)

list5= [[1,"kids",0.00095], [2,"adult",0.0012], [3,"elderly",0.00114],[5,"kids",0.00043], [6,"adult",0.00113], [7,"elderly",0.00105]]
l5 = pd.DataFrame(list5)
    
l = [l1, l2, l3, l4, l5]

我想要创建一个类似于在这里输入图像描述下面的情节

对于每个城市,一个带有特定组和y轴值的盒子图,城市按纬度进行排序。

我试着用pd.concatpd.melt (来自:在海上绘制多个盒子图?)来实现这一点。

这对我来说是个挑战。谢谢您抽时间见我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-10 19:28:02

您可以使用concat将城市名称作为MultiIndex,并使用seaborn.catplot来绘制:

代码语言:javascript
复制
df = pd.concat(dict(zip(city_df['Name'], l)), names=['city']).reset_index(level=0)

import seaborn as sns
sns.catplot(data=df, row=1, x='city', y=2, kind='box', sharey=False)

产出:

代码语言:javascript
复制
           city  0        1        2
0  San Franciso  1     kids  0.00094
1  San Franciso  2    adult  0.00120
2  San Franciso  3  elderly  0.00114
3  San Franciso  5     kids  0.00088
4  San Franciso  6    adult  0.00113
5  San Franciso  7  elderly  0.00105
0         Paris  1     kids  0.00044
1         Paris  2    adult  0.00120
2         Paris  3  elderly  0.00114
3         Paris  5     kids  0.00088
4         Paris  6    adult  0.00113
5         Paris  7  elderly  0.00105
0         Tokyo  1     kids  0.00394
1         Tokyo  2    adult  0.00120
2         Tokyo  3  elderly  0.00114
3         Tokyo  5     kids  0.00588
4         Tokyo  6    adult  0.00113
5         Tokyo  7  elderly  0.00105
0        London  1     kids  0.00074
1        London  2    adult  0.00120
2        London  3  elderly  0.00114
3        London  5     kids  0.00088
4        London  6    adult  0.00113
5        London  7  elderly  0.00105
0     Barcelona  1     kids  0.00095
1     Barcelona  2    adult  0.00120
2     Barcelona  3  elderly  0.00114
3     Barcelona  5     kids  0.00043
4     Barcelona  6    adult  0.00113
5     Barcelona  7  elderly  0.00105

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70309402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档