我开始使用seaborn并且我只使用pyplot.plot函数,每当我使用对数刻度时,轴刻度被表示为10到某个幂。在使用seaborn之前,行
ax.xaxis.set_major_formatter(FormatStrFormatter('%.0f'))
正在解决这个问题,但现在有了seaborn它没有。有什么想法我怎么能在我的轴上有简单的符号?
以下是代码示例。我希望x轴的形式为:0.1,1,10,100 ..而不是现在。
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style('ticks', {'font.family': 'sans-serif'})
sns.set_context("paper", font_scale=1.3)
plt.rc('text', usetex=True)
x_lim=[0.1,100]
y_lim=[1.2001, 2.2001]
f = plt.figure()
plt.xscale('log')
plt.ylim(y_lim)
plt.xlim(x_lim)
plt.hlines(1.5, *x_lim, color='grey')
plt.show()
答案 0 :(得分:2)
关键是格式化程序行的位置。它必须在ax.set_xscale('log')
之后。
使用%.0f
删除小数点后的所有数字(离开0
而不是0.1
),而不是使用%g
,使用import matplotlib.pyplot as plt
import matplotlib.ticker as tck
import seaborn as sns
sns.set_style('ticks', {'font.family': 'sans-serif'})
sns.set_context("paper", font_scale=1.3)
plt.rc('text', usetex=True)
x_lim=[0.1,100]
y_lim=[1.2001, 2.2001]
f = plt.figure()
ax = f.add_subplot(plt.subplot(1, 1, 1))
ax.set_xscale('log')
ax.set_ylim(y_lim)
ax.set_xlim(x_lim)
ax.hlines(1.5, *x_lim, color='grey')
ax.xaxis.set_major_formatter(tck.FormatStrFormatter('%g'))
plt.show()
,这将舍入为1个有效数字。我已经扩展了您的示例以使用子图,以便可以设置格式:
private void startQuickGame () {
//skipping some lines...
RoomConfig.Builder roomConfigBuilder = makeBasicRoomConfigBuilder();
roomConfigBuilder.setAutoMatchCriteria(am);
roomConfigBuilder.setRoomStatusUpdateListener(this); //I forgot this line
RoomConfig roomConfig = roomConfigBuilder.build();
//skipping some lines...
}
这会产生图像: