在seaborn地块中的简单表示法

时间:2015-07-16 22:05:14

标签: python matplotlib seaborn

我开始使用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()

enter image description here

1 个答案:

答案 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...
}

这会产生图像:

enter image description here