python - 当我在 pycharm 中运行 '''sns.histplot(df['price'])''' 时,我得到了代码输出但没有图表,这是为什么呢?
问题描述
我正在使用 pycharm 使用 Seaborn 运行一些代码。我对 python 很陌生,只是想学习一些技巧,所以我正在在线学习教程。我已经导入了必要的库并运行了以下代码
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
# import the data saved as a csv
df = pd.read_csv('summer-products-with-rating-and-performance_2020-08.csv')
df["has_urgency_banner"] = df["has_urgency_banner"].fillna(0)
df["discount"] = (df["retail_price"] -
df["price"])/df["retail_price"]
df["rating_five_percent"] = df["rating_five_count"]/df["rating_count"]
df["rating_four_percent"] = df["rating_four_count"]/df["rating_count"]
df["rating_three_percent"] = df["rating_three_count"]/df["rating_count"]
df["rating_two_percent"] = df["rating_two_count"]/df["rating_count"]
df["rating_one_percent"] = df["rating_one_count"]/df["rating_count"]
ratings = [
"rating_five_percent",
"rating_four_percent",
"rating_three_percent",
"rating_two_percent",
"rating_one_percent"
]
for rating in ratings:
df[rating] = df[rating].apply(lambda x: x if x>= 0 and x<= 1 else 0)
# Distribution plot on price
sns.histplot(df['price'])
我的输出如下:
进程以退出代码 0 结束
所以我知道代码中没有错误,但我没有看到任何我应该看到的图表。我找到了解决这个问题的方法,最后使用这个
plt.show()
它会打开一个新选项卡并使用 matplotlib 向我展示一个类似的图表。
但是,在我用来跟随的代码中,未导入或使用 matplotlib(我知道 seaborn 已内置 Matplotlib 功能),因为未使用 plt.show 语句,但仍实现了可视化图形。
我还使用了 print ,它给了我以下信息
AxesSubplot(0.125,0.11;0.775x0.77)
最后要提的是,我跟随的代码使用以下
import seaborn as sns
# Distribution plot on price
sns.distplot(df['price'])
但是 distplot 现在已经贬值了,我现在使用 histplot 因为我认为这是与使用 displot 相比的最佳选择,如果不正确,请告诉我。
我觉得有一个简单的解决方案可以解释为什么我没有看到图表,但我不确定这是否与 pycharm 或代码中的某些内容有关。
解决方案
matplotlib 是seaborn 的依赖项。因此,使用import matplotlib.pyplot as plt
和调用导入 matplotlibplt.show()
不会给您的代码增加任何开销。
虽然目前没有sns.plt.show()
(参见这个类似的问题进行讨论)很烦人,但我认为这是在使用 PyCharm 社区时强制显示图表的最简单解决方案。
以这种方式导入 matplotlib 不会影响练习的运行方式,只要您使用plt
.
推荐阅读
- google-contacts-api - AuthenticationManager.GetExternalLoginInfoAsync() 在谷歌的情况下返回 null
- vb.net - 使用子查询在 DataRepeater 上标记数据绑定
- python - 使用 python flask sqlalchemy orm 实现交叉连接时的完整性错误
- elasticsearch - 多词不精确词的 Elasticsearch 匹配查询
- bash - Bash Shell 文件将 .sass 和 .scss 转换为 css
- node.js - 选择哪个 AWS EC2 实例?
- spring - Spring Boot JPA 动态查询构建
- python - 图像中的无关信息对 CNN 的学习过程有多大影响?
- sql - 未处理多维数据集时使用 DMV 获取所有多维数据集名称的列表
- gradle - 如何在 build.gradle 配置文件中忽略 gradle 依赖版本