似乎set_xticks在日志范围内不起作用:
from matplotlib import pyplot as plt
fig1, ax1 = plt.subplots()
ax1.plot([10, 100, 1000], [1,2,3])
ax1.set_xscale('log')
ax1.set_xticks([20, 200, 500])
plt.show()
Run Code Online (Sandbox Code Playgroud)
可能吗?
tac*_*ell 58
import matplotlib
from matplotlib import pyplot as plt
fig1, ax1 = plt.subplots()
ax1.plot([10, 100, 1000], [1,2,3])
ax1.set_xscale('log')
ax1.set_xticks([20, 200, 500])
ax1.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter())
Run Code Online (Sandbox Code Playgroud)
要么
ax1.get_xaxis().get_major_formatter().labelOnlyBase = False
plt.show()
Run Code Online (Sandbox Code Playgroud)
Fra*_*urt 13
我将添加一些图并显示如何删除次要刻度:
OP:
from matplotlib import pyplot as plt
fig1, ax1 = plt.subplots()
ax1.plot([10, 100, 1000], [1,2,3])
ax1.set_xscale('log')
ax1.set_xticks([20, 300, 500])
plt.show()
Run Code Online (Sandbox Code Playgroud)
要添加一些特定的滴答,正如tcaswell所指出的,您可以使用 matplotlib.ticker.ScalarFormatter:
from matplotlib import pyplot as plt
import matplotlib.ticker
fig1, ax1 = plt.subplots()
ax1.plot([10, 100, 1000], [1,2,3])
ax1.set_xscale('log')
ax1.set_xticks([20, 300, 500])
ax1.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter())
plt.show()
Run Code Online (Sandbox Code Playgroud)
要删除次要刻度,您可以使用matplotlib.rcParams['xtick.minor.size']:
from matplotlib import pyplot as plt
import matplotlib.ticker
matplotlib.rcParams['xtick.minor.size'] = 0
matplotlib.rcParams['xtick.minor.width'] = 0
fig1, ax1 = plt.subplots()
ax1.plot([10, 100, 1000], [1,2,3])
ax1.set_xscale('log')
ax1.set_xticks([20, 300, 500])
ax1.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter())
plt.show()
Run Code Online (Sandbox Code Playgroud)
你可以使用 ax1.get_xaxis().set_tick_params它,它具有相同的效果(但只修改当前轴,而不是所有未来的数字不同matplotlib.rcParams):
from matplotlib import pyplot as plt
import matplotlib.ticker
fig1, ax1 = plt.subplots()
ax1.plot([10, 100, 1000], [1,2,3])
ax1.set_xscale('log')
ax1.set_xticks([20, 300, 500])
ax1.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter())
ax1.get_xaxis().set_tick_params(which='minor', size=0)
ax1.get_xaxis().set_tick_params(which='minor', width=0)
plt.show()
Run Code Online (Sandbox Code Playgroud)
最好用作np.geomspacexticks
ax = sns.histplot(arr, log_scale=True)
ax.xaxis.set_major_formatter(matplotlib.ticker.ScalarFormatter())
ax.set_xticks( np.geomspace(1, 1500 ,15).round() )
Run Code Online (Sandbox Code Playgroud)
from matplotlib.ticker import ScalarFormatter, NullFormatter
for axis in [ax.xaxis]:
axis.set_major_formatter(ScalarFormatter())
axis.set_minor_formatter(NullFormatter())
Run Code Online (Sandbox Code Playgroud)
这删除了指数表示法
| 归档时间: |
|
| 查看次数: |
60062 次 |
| 最近记录: |