python - Seaborn 子图未显示 IPython
问题描述
之后我的子图没有显示plt.show()
,如果我尝试保存子图,也没有任何图。这是我的代码,
import pandas as pd
import seaborn as sns
import numpy as np
from matplotlib import pyplot as plt
%matplotlib inline
sns.set()
data = pd.read_csv('somedata.csv')
grouped = data.groupby('data_type')
grouped.groups.keys()
targets = zip(grouped.groups.keys(), axs.flatten())
fig, axs = plt.subplots(figsize=(13,9),
nrows=2, ncols=2)
for i, (key, ax) in enumerate(targets):
sns.lineplot(data=grouped.get_group(key), ax=ax,
x="num_items", y="mean",
hue="label", style="label")
ax.set_title('Insertion Performance: ' + key)
plt.show()
fig.savefig('./experimenet_plots/bst_vs_avl.png', dpi=200)
解决方案
我唯一能看到的是你必须创建你的fig,axs
before targets
。下面显示了它的工作原理:
data = pd.DataFrame(np.random.uniform(0,1,(50,2)),columns=['num_items','mean'])
data['data_type'] = np.random.choice(['1','2','3','4'],50)
data['label'] = np.random.choice(['A','B'],50)
grouped = data.groupby('data_type')
grouped.groups.keys()
#this part
fig, axs = plt.subplots(figsize=(13,9),nrows=2, ncols=2)
targets = zip(grouped.groups.keys(), axs.flatten())
for i, (key, ax) in enumerate(targets):
sns.lineplot(data=grouped.get_group(key), ax=ax,
x="num_items", y="mean", hue="label", style="label")
ax.set_title('Insertion Performance: ' + str(key))
推荐阅读
- sql-server - 为什么logstash会抛出与SQL Server数据的夏令时差的错误
- python - 在python中基于分钟的日期时间列中每隔n分钟采样一次
- android - { "error_message": "您必须在 Google Cloud 项目上启用结算功能 }
- node.js - 为什么 webpack 错误地将 Javascript 文件的本地路径解析为根路径?
- flutter - Flutter注销以删除所有路由
- python-3.x - 如何在python中测试jdbc连接?
- c++ - 通过错误的指针类型调用成员函数的未定义行为
- html - bootstrap4 中不显示边框?请检查下面给出的代码
- gdb - 当我尝试通过 pwntools 使用 gdb 调试程序时,gdb 在 0xXXX 地址处插入断点
- c++ - 在单词之间添加空格