gpt4 book ai didi

python - 保存具有特定分辨率/像素密度的 Python SymPy 图形

转载 作者:太空狗 更新时间:2023-10-30 00:17:01 25 4
gpt4 key购买 nike

我想知道是否有办法改变 sympy 图的像素密度/分辨率。例如,让我们考虑下面的简单代码片段:

import sympy as syp

x = syp.Symbol('x')
miles_to_km = x * 1.609344
miles_to_km.evalf()

graph = syp.plot(miles_to_km, show=False)
graph.save('./figures/miles_to_km.png')
graph.show()

enter image description here

注意事项:

  • 当我尝试使用 graph.savefig 时,我得到了一个 AttributeError: 'Plot' object has no attribute 'saveimage' 我偶然发现了 某些在线资源中的 saveimage 方法,听起来这是常见的方法——我想 API 发生了变化?

  • graph.save('./figures/miles_to_km.png', dpi=300) 产生类型错误:TypeError: save() got an unexpected keyword argument ' dpi'

  • plot 中使用 dpi 属性不会引发任何错误,但也不会影响图像质量:graph = syp.plot( miles_to_km, dpi=300, show=False)

我还尝试使用 matplotlib 后端:

plt.figure()
graph = syp.plot(miles_to_km, show=False)
#graph.save('./figures/miles_to_km.png')
plt.savefig('./figures/miles_to_km.png')
graph.show()

其中 plt = matplotlib.pyplot。但是, Canvas 是空白的。另外相关信息可能是我在启用了 %matplotlib inline 的 IPython 笔记本中运行它。

  • 我正在使用 SymPy v. 0.7.6

下面的 backend 变通方案显示了 IPython notebook 中的绘图,但它也会生成白色 Canvas (如 png)

graph = syp.plot(miles_to_km, show=False)
backend = graph.backend(graph)
backend.fig.savefig('ch01_2.png', dpi=300)
backend.show()

enter image description here

编辑和解决方案:

感谢Cody Piersall的回答问题现已解决。我更新到 IPython 4.0(Jupyter notebook)并绘制如下

graph = syp.plot(miles_to_km, show=False)
backend = graph.backend(graph)
backend.process_series()
backend.fig.savefig('miles_to_km.png', dpi=300)
backend.show()

最佳答案

这个问题已经解决了,你现在可以简单地使用这个:

graph = sympy.plot(f, show = False)
graph.save('fig.png')

不幸的是,它似乎不允许选择 dpi。

关于python - 保存具有特定分辨率/像素密度的 Python SymPy 图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32151669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com