OverflowError。 Matplotlib对数标度

时间:2015-05-10 18:13:37

标签: python python-2.7 matplotlib

我试图在对数日志范围内创建散点图。以下是我的代码:

from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes
from mpl_toolkits.axes_grid1.inset_locator import mark_inset

fig, ax1 = plt.subplots(figsize=[20,10])

s1=ax1.scatter(df_100['Publications2013'], df_100['totalcitations'], color='purple', label='hindex >99 percetile')
s2=ax1.scatter(df_99['Publications2013'], df_99['totalcitations'], color='blue', label='hindex 98-99 percentile' )

m,b = np.polyfit(df_all['Publications2013'],df_all['totalcitations'],1)
s8= ax1.plot(df_all['Publications2013'], m*df_all['Publications2013']+b, linestyle='-', linewidth='1', color='black', label='average citation/publications')

ax1.set_xlim(1,950)
ax1.set_ylim(1,122000)

ax1.set_xscale('log')
ax1.set_yscale('log')

plt.savefig("plots/pubs_vs_citations_zoom_log.png")

我收到以下错误:

OverflowError: Allocated too many blocks

当我删除以下两行时,图表绘制得很好,但使用常规比例。如何将其转换为对数刻度?我不确定我理解错误的含义。

ax1.set_xscale('log')
ax1.set_yscale('log')

1 个答案:

答案 0 :(得分:0)

我通过删除来解决它:

m,b = np.polyfit(df_all['Publications2013'],df_all['totalcitations'],1)
s8= ax1.plot(df_all['Publications2013'], m*df_all['Publications2013']+b, linestyle='-', linewidth='1', color='black', label='average citation/publications')

它与linestyle='-'

有关