Sid*_*Sid 10 python matplotlib pandas
它之前工作得很好,但由于某种原因,现在我遇到了奇怪的错误。
熊猫版本:1.2.3
matplotlib 版本:3.7.0
示例数据框:
df
cap Date
0 1 2022-01-04
1 2 2022-01-06
2 3 2022-01-07
3 4 2022-01-08
Run Code Online (Sandbox Code Playgroud)
df.plot(x='cap', y='Date')
plt.show()
Run Code Online (Sandbox Code Playgroud)
df.dtypes
cap int64
Date datetime64[ns]
dtype: object
Run Code Online (Sandbox Code Playgroud)
我得到一个回溯:
df
cap Date
0 1 2022-01-04
1 2 2022-01-06
2 3 2022-01-07
3 4 2022-01-08
Run Code Online (Sandbox Code Playgroud)
小智 15
事实上,这个问题可能是由于像默认脚本(或在 PyCharm 交互式控制台中)那样运行代码而引起的,而不是在 Jupyter 中引起的。
如果是这样,您可以通过使用以下函数直接在文件中设置后端来修复此错误use:
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.use('TkAgg') # !IMPORTANT
fig, ax = plt.subplots()
res = ax.plot([1, 2, 3, 4], [1, 4, 2, 3]) # Plt some data on the axes.o
# plt.show() # optionally show the result.
Run Code Online (Sandbox Code Playgroud)
在某些情况下TkAgg可能不可用。首先检查您使用哪个后端。为此,运行这个简单的代码:
import matplotlib as mpl
print(mpl.get_backend())
Run Code Online (Sandbox Code Playgroud)
但!这必须由您在 PyCharm 外部的默认终端中手动运行。(例如创建简单test.py文件,粘贴代码,然后运行python test.py)
为什么? 因为 PyCharm(至少在科学项目中)使用使用后端的交互式控制台运行所有文件module://backend_interagg。这个后端会导致与您相同的错误。
所以。添加mpl.use('TkAgg')到文件的头部,或者检查您可以使用哪个后端并将这些名称粘贴到此函数中。
| 归档时间: |
|
| 查看次数: |
12918 次 |
| 最近记录: |