使用sympy绘图时出现错误--网上第一份

描述

from sympy.plotting import plot
from sympy import symbols

x = symbols('x')
p2 = plot(x*x, (x, -10, 10))

这个是代码

然后我在jupyter notebook中运行了这串代码,就遇到了下面的这个情况

使用sympy绘图时出现错误--网上第一份_第1张图片

寻找答案

为什么是这样显示的呢?

好丑啊,感觉

而且这个和别人的运行结果也是完全不一样

我现在是在我的虚拟环境中运行的,然后我就想:如果是在Anaconda中的Python中运行这串代码会是一个什么样的结果呢?

使用sympy绘图时出现错误--网上第一份_第2张图片
这个是在Anaconda中的Python中运行的结果

使用sympy绘图时出现错误--网上第一份_第3张图片
使用sympy绘图时出现错误--网上第一份_第4张图片

为什么会不一样呢?同样的一串代码,为什么在两个环境中运行的结果会有所差异呢?

难道是jupyter notebook的问题吗?

于是我又在pycharm中运行了这串代码

虚拟环境中:

D:\Anaconda3\Installation\envs\math\python.exe D:/数学建模/Python数学编程/code/note.py
    100 |\                                                     /
        | .                                                   . 
        |                                                       
        |  .                                                 .  
        |   \                                               /   
        |    .                                             .    
        |                                                       
        |     .                                           .     
        |      \                                         /      
        |       \                                       /       
     50 |--------\-------------------------------------/--------
        |         \                                   /         
        |          \                                 /          
        |           \                               /           
        |            \                             /            
        |             ..                         ..             
        |               \                       /               
        |                ..                   ..                
        |                  ..               ..                  
        |                    ...         ...                    
      0 |_______________________________________________________
         -10                        0                          10

Process finished with exit code 0

使用sympy绘图时出现错误--网上第一份_第5张图片

Anaconda中的Python中:

使用sympy绘图时出现错误--网上第一份_第6张图片
为什么会出现这样的差异呢?

想了一下,可能是本地虚拟环境和新建的虚拟环境两种环境的Python它们的库版本是不一样的

本地环境的库版本:

使用sympy绘图时出现错误--网上第一份_第7张图片

虚拟环境的库版本:

使用sympy绘图时出现错误--网上第一份_第8张图片

于是,我就将虚拟环境中的sympy库卸载,并安装了1.5.1版本的sympy库

卸载:
使用sympy绘图时出现错误--网上第一份_第9张图片

安装:

使用sympy绘图时出现错误--网上第一份_第10张图片

然后再次运行这段代码,发现还是不行,没有用

使用sympy绘图时出现错误--网上第一份_第11张图片
这个时候,我仔细阅读了一下安装时出现的提示性文字:

使用sympy绘图时出现错误--网上第一份_第12张图片

Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting sympy==1.5.1
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/ce/5b/acc12e3c0d0be685601fc2b2d20ed18dc0bf461380e763afc9d0a548deb0/sympy-1.5.1-py2.py3-none-any.whl (5.6 MB)
     |████████████████████████████████| 5.6 MB 652 kB/s
Requirement already satisfied: mpmath>=0.19 in d:\anaconda3\installation\envs\math\lib\site-packages (from sympy==1.5.1) (1.1.0)
Installing collected packages: sympy
Successfully installed sympy-1.5.1

难道是我的这个mpmath出现了问题?

查看一下我的第三方库后发现:我根本没有这个库

使用sympy绘图时出现错误--网上第一份_第13张图片
又看了一下本地环境的第三方库,它是有这个库的

使用sympy绘图时出现错误--网上第一份_第14张图片

于是,我就想是不是因为这个库才导致出错的

安装一下这个库

在这里插入图片描述
它说,我已经有了,也就是说不是这个库导致的问题,那是什么原因呢?

后来我又查看了一下资料,发现sympy的绘图底层是matplotlib这个库,也就是说,sympy会调用matplotlib这个库区帮助它绘制函数的图形,仔细想了一下,可能是因为matplotlib这个库出现的问题,安装一下matplotlib这个库

使用sympy绘图时出现错误--网上第一份_第15张图片
再次运行一下这串代码

使用sympy绘图时出现错误--网上第一份_第16张图片
好像是解决了,但是还是存在着问题:曲线不对

这个是本地环境中的运行结果

使用sympy绘图时出现错误--网上第一份_第17张图片
虚拟环境

使用sympy绘图时出现错误--网上第一份_第18张图片
这个曲线肯定是不对的,这是什么原因呢?

往上面看,发现它报了一个这样的问题

使用sympy绘图时出现错误--网上第一份_第19张图片

D:\Anaconda3\Installation\envs\math\lib\site-packages\sympy\plotting\plot.py:1065: MatplotlibDeprecationWarning: 
The set_smart_bounds function was deprecated in Matplotlib 3.2 and will be removed two minor releases later.
  self.ax[i].spines['left'].set_smart_bounds(True)
D:\Anaconda3\Installation\envs\math\lib\site-packages\sympy\plotting\plot.py:1066: MatplotlibDeprecationWarning: 
The set_smart_bounds function was deprecated in Matplotlib 3.2 and will be removed two minor releases later.
  self.ax[i].spines['bottom'].set_smart_bounds(False)

上网搜一下,看是什么问题

网上暂时还是没有什么好的解决方案,问题先放在这里,等待解决。

————————————————————
我终于找到解决方案了

完整的写一下

答案

第一步:安装这个版本的matplotlib库

使用sympy绘图时出现错误--网上第一份_第20张图片
使用命令:pip install matplotlib==3.1.3 -i https://pypi.tuna.tsinghua.edu.cn/simple

第二步:

你可能感兴趣的:(python三千问,python,anaconda,bug,debug)