如何解决Plotly报错:'PathCollection'对象无'get_offset_position'属性
解决Matplotlib转Plotly图形报错问题
问题根源
你使用的mpl_to_plotly方法已被Plotly官方废弃,新版本Plotly中该方法已从plotly.tools模块移除,因此运行代码会触发错误。
解决方案
推荐两种可行方案,优先选择原生Plotly API,兼容性和功能更完善:
方案1:直接使用Plotly原生API绘制散点图(推荐)
无需依赖Matplotlib,直接用Plotly的express或graph_objects模块实现:
# 使用plotly.express快速绘制 import plotly.express as px fig = px.scatter(x=[1, 2, 3], y=[23, 12, 34]) fig.show()
或者用更灵活的graph_objects:
import plotly.graph_objects as go fig = go.Figure(data=go.Scatter( x=[1, 2, 3], y=[23, 12, 34], mode='markers' # 指定为散点模式 )) fig.show()
方案2:使用新版本转换工具实现Matplotlib到Plotly的转换
如果必须保留Matplotlib绘图逻辑,可使用Plotly官方提供的替代方法plotly.io.to_plotly:
import matplotlib.pyplot as plt import plotly.io as pio mpl_fig, ax = plt.subplots() ax.scatter(x=[1, 2, 3], y=[23, 12, 34]) plotly_fig = pio.to_plotly(mpl_fig) plotly_fig.show()
内容的提问来源于stack exchange,提问作者hacking_mike
相关产品推荐
相关产品推荐

