我正在使用 pythonplotly 包来生成论文的绘图。我使用 Fig.write_image() 命令导出图形。但是,导出为 pdf(或 svg 或 eps)时,用于描述线散点图的点数会减少。在我的jupyter笔记本中,曲线看起来很平滑,导出为pdf,我清楚地看到“点”。
这是一个最小的例子:
import plotly.graph_objects as go
import numpy as np
xvalues=np.linspace(0,10,10000)
fig=go.Figure()
fig.add_trace(go.Scatter(x=xvalues, y=np.sin(xvalues), name="sin(x) marker", mode='markers', marker=dict(size=1)))
fig.add_trace(go.Scatter(x=xvalues, y=np.cos(xvalues), name="cos(x) line", ))
fig.show()
fig.write_image("cos.pdf")
我使用了不同的格式,例如 svg 或 eps,但结果相同。此外,打开文件的软件不会影响绘图。导出为 png 时,曲线看起来很平滑。
这是一个错误还是一个功能?我认为这是某种压缩?
解决方法是从线条类型切换为标记,并相应地增加点数。但是,我不确定这在文件大小方面是否是一个好的解决方案。此外,这需要对图例进行一些修改才能得到一条线而不是点。
我想将这些图包含在 Latex 文档中。只要它仍然是矢量图形,我就可以根据需要更改文件格式。
您需要将线形状设置为“样条线”。默认为“线性”(点通过直线连接)。
- 确定线条形状。使用“样条线”时,线条是 使用样条插值绘制。其他可用值 对应于逐步的线条形状。shape
fig.add_trace(go.Scatter(
x=xvalues, y=np.cos(xvalues), name="cos(x) line", line=dict(shape='spline')
))