python - Python:在函数中生成熊猫图但不显示
问题描述
我想通过调用函数来绘制熊猫数据框的列。数据帧被传递给函数并进行操作。返回一个绘图和操作的数据框:
from matplotlib import pyplot as plt
import pandas as pd
def custom_plot(df):
tmp = df.plot(kind = 'bar')
plt.legend(title = "Test")
return [tmp,df]
df = pd.DataFrame( {'x' : [1,2,3]})
p,d = custom_plot(df)
执行此代码会显示此图,尽管我不希望它显示:
我想p
通过调用类似的东西在 Jupyter 笔记本中绘制返回的对象p.show()
。有2个问题:
custom_plot()
尽管我不希望它被绘制,但在调用时总是显示该图。当我想
p
通过调用p.show()
它进行绘图时不起作用。我被告知 AttributeError:'AxesSubplot' 对象没有属性 'show'
如何实现这种行为?
解决方案
也许这(部分)解决了这个问题:
from matplotlib import pyplot as plt
import pandas as pd
def custom_plot(df):
tmp = df.plot(kind = 'bar')
plt.legend(title = 'Test')
fig = tmp.get_figure()
plt.close()
return fig, df
df = pd.DataFrame( {'x' : [1, 2, 3]})
p, d = custom_plot(df)
关闭图形可防止其显示。您可以p
不使用.show()
来显示图形。
推荐阅读
- tvos13 - 使用用 Xcode 11 编译的 tvOS 13 UITabBarController - tabBarObservedScrollView 滚动内容
- scala - 将两个列表与一个不同的元素组合在一起
- php - Laravel如何自动获取数组ID
- angular - Angular 如何使用 combineLatest 组合来自网站 url 栏的路由和查询
- npm - 如何在创建新的 Angular 8 项目时修复此 json 错误
- java - Drools 在 camelCase 中查找 Java 类,引发 NoClassDefFoundError
- c++ - C ++管理大量图像缓冲区
- objective-c - 为什么 setTitleEdgeInsets 在 iOS 13 中不起作用?目标 - C
- uno-platform - GetFileFromApplicationUriAsync、CopyAsync、AsStreamForRead 未在 Uno 平台中实现。解决方法?
- php - 如何以编程方式更新 Prestashop 产品状态?