Python ';日志';和';symlog';?
在中,我可以使用或设置轴缩放。这两个函数都接受三种不同的刻度:Python ';日志';和';symlog';?,python,matplotlib,scale,logarithm,Python,Matplotlib,Scale,Logarithm,在中,我可以使用或设置轴缩放。这两个函数都接受三种不同的刻度:'linear'|'log'|'symlog' 'log'和'symlog'之间有什么区别?在我做的一个简单测试中,他们看起来完全一样 我知道文档上说它们接受不同的参数,但我仍然不理解它们之间的区别。有人能解释一下吗?答案将是最好的,如果它有一些示例代码和图形!(还有:名称“symlog”从何而来?symlog类似于log,但允许您定义一个接近零的值范围,在该范围内,绘图是线性的,以避免绘图在零附近变为无穷大 从 在对数图中,你永远不
'linear'
|'log'
|'symlog'
'log'
和'symlog'
之间有什么区别?在我做的一个简单测试中,他们看起来完全一样
我知道文档上说它们接受不同的参数,但我仍然不理解它们之间的区别。有人能解释一下吗?答案将是最好的,如果它有一些示例代码和图形!(还有:名称“symlog”从何而来?symlog类似于log,但允许您定义一个接近零的值范围,在该范围内,绘图是线性的,以避免绘图在零附近变为无穷大 从 在对数图中,你永远不会有一个零值,如果你有一个接近零的值,它会从你的图的底部向下尖峰(无限向下),因为当你取“log(接近零)”时,你会得到“接近负无穷大”
symlog可以帮助您解决需要使用日志图的情况,但有时该值可能会下降到零,但您仍然希望能够以有意义的方式在图上显示该值。如果你需要symlog,你会知道的。我终于找到时间做了一些实验,以了解它们之间的区别。以下是我的发现:
仅允许正值,并允许您选择如何处理负值(log
或mask
)clip
表示对称对数,允许正值和负值symlog
允许在绘图中设置零附近的范围将是线性的,而不是对数的symlog
import numpy
from matplotlib import pyplot
# Enable interactive mode
pyplot.ion()
# Draw the grid lines
pyplot.grid(True)
# Numbers from -50 to 50, with 0.1 as step
xdomain = numpy.arange(-50,50, 0.1)
# Plots a simple linear function 'f(x) = x'
pyplot.plot(xdomain, xdomain)
# Plots 'sin(x)'
pyplot.plot(xdomain, numpy.sin(xdomain))
# 'linear' is the default mode, so this next line is redundant:
pyplot.xscale('linear')
为了完整起见,我使用以下代码保存每个数字:
# Default dpi is 80
pyplot.savefig('matplotlib_xscale_linear.png', dpi=50, bbox_inches='tight')
请记住,您可以使用以下方法更改体形大小:
fig = pyplot.gcf()
fig.set_size_inches([4., 3.])
# Default size: [8., 6.]
(如果您不确定我是否要回答自己的问题,请阅读)以下是一个需要symlog时的行为示例: 初始绘图,未缩放。注意有多少点聚集在x~0处
ax = sns.scatterplot(x= 'Score', y ='Total Amount Deposited', data = df, hue = 'Predicted Category')
[
"
对数比例绘图。所有内容都崩溃了。
ax = sns.scatterplot(x= 'Score', y ='Total Amount Deposited', data = df, hue = 'Predicted Category')
ax.set_xscale('log')
ax.set_yscale('log')
ax.set(xlabel='Score, log', ylabel='Total Amount Deposited, log')
ax = sns.scatterplot(x= 'Score', y ='Total Amount Deposited', data = df, hue = 'Predicted Category')
ax.set_xscale('symlog')
ax.set_yscale('symlog')
ax.set(xlabel='Score, symlog', ylabel='Total Amount Deposited, symlog')
"
为什么会崩溃?因为x轴上的一些值非常接近或等于0
Symlog缩放图。一切正常。
ax = sns.scatterplot(x= 'Score', y ='Total Amount Deposited', data = df, hue = 'Predicted Category')
ax.set_xscale('log')
ax.set_yscale('log')
ax.set(xlabel='Score, log', ylabel='Total Amount Deposited, log')
ax = sns.scatterplot(x= 'Score', y ='Total Amount Deposited', data = df, hue = 'Predicted Category')
ax.set_xscale('symlog')
ax.set_yscale('symlog')
ax.set(xlabel='Score, symlog', ylabel='Total Amount Deposited, symlog')
嗯……我读到了,但我仍然不知道什么时候应该使用这两种方法。我希望能有一些图形化的例子,这样我才能真正了解symlog试图解决的问题是什么。
ax = sns.scatterplot(x= 'Score', y ='Total Amount Deposited', data = df, hue = 'Predicted Category')
ax.set_xscale('log')
ax.set_yscale('log')
ax.set(xlabel='Score, log', ylabel='Total Amount Deposited, log')
ax = sns.scatterplot(x= 'Score', y ='Total Amount Deposited', data = df, hue = 'Predicted Category')
ax.set_xscale('symlog')
ax.set_yscale('symlog')
ax.set(xlabel='Score, symlog', ylabel='Total Amount Deposited, symlog')