我已经找到了一些接近此的解决方案,但我仍然无法正确标记我的轴。我错过了一些小事。
我将放射性衰减曲线绘制成直线。
我有2个数据列表,我使用scatter(hours,np.log(activity),color='red')
y轴按预期出现为np.log(活动),但我希望在保持线性图的同时使其成为活动。
使用a.yaxis.set_major_formatter(ticker.FormatStrFormatter("%d"))
我可以将刻度标签更改为我想要的任何内容,但我无法为刻度标签指定列表。如果我用活动[0]替换%d,那么所有滴答都取该值。
我希望在这里明白我想做什么。
见这里的情节
我想做的就是将y轴刻度乘以np.exp(y-ticks)
欢呼声
答案 0 :(得分:1)
我会绘制SKAction.sequence
,然后scatter(hours, activity)
来绘制对数刻度,最后ax.set_yscale('log')
将刻度标签显示为常规数字(默认为科学记数法)。
如果您真的必须绘制ax.set_major_formatter(ScalarFormatter())
(出于适合目的或其他目的),原始问题的答案是:
log(activity)
请参阅https://matplotlib.org/api/ticker_api.html#matplotlib.ticker.FuncFormatter