如何按城市分组生成多子图直方图并设置对应城市标题
实现代码
你可以提前创建指定行列的子图画布,再遍历城市分组逐个绘图并配置标题:
import matplotlib.pyplot as plt # 自定义子图布局:此处设置为10行5列,可根据实际城市数量调整行列参数 fig, axes = plt.subplots(nrows=10, ncols=5, figsize=(20, 40), tight_layout=True) # 把子图数组从二维转为一维,方便遍历匹配分组 axes = axes.flatten() # 遍历每个城市的分组数据和对应子图 for idx, (city_name, city_data) in enumerate(data.groupby("CityName")): # 绘制当前城市的行程时长直方图 city_data.hist(column="CarTripDuration", ax=axes[idx]) # 将子图标题设置为对应城市名称 axes[idx].set_title(city_name) # 可选:统一设置坐标轴标签 axes[idx].set_xlabel("汽车行程时长") axes[idx].set_ylabel("出现次数") # 若城市总数少于子图总数(10*5=50),隐藏多余的空白子图 for empty_ax in axes[data["CityName"].nunique():]: empty_ax.axis("off") plt.show()
内容的提问来源于stack exchange,提问作者alexv
相关产品推荐
相关产品推荐

