matplotlib / python相同的代码生成不同的图?

时间:2016-07-26 19:45:46

标签: python matplotlib plot

我在另一个问题上寻求帮助,当我尝试答案的代码时,我得到了不同的画面。我真的希望我的情节与答案作者生成的情节相同。我正在使用spyder / pycharm生成图片。

我没有更改任何matplotlib常规设置。

守则

l = [23948.30, 23946.20, 23961.20, 23971.70, 23956.30, 23987.30]

def box_plot(circ_list):
    fig, ax = plt.subplots()
    plt.boxplot(circ_list, 0, 'rs', 0, showmeans=True)
    plt.ylim((0.28, 1.5))
    ax.set_yticks([])
    labels = ["{}".format(int(i)) for i in ax.get_xticks()]
    ax.set_xticklabels(labels)
    ax.spines['right'].set_color('none')
    ax.spines['top'].set_color('none')
    ax.spines['left'].set_color('none')
    ax.spines['bottom'].set_position('center')
    ax.spines['bottom'].set_color('none')
    ax.xaxis.set_ticks_position('bottom')
    plt.show()

box_plot(l)

答案的情节

http://i.stack.imgur.com/EFilf.png

我的情节

enter image description here

这是我从中获取代码的相关问题:(也未解决,请帮助)

python/matplotlib/seaborn- boxplot on an x axis with data points

1 个答案:

答案 0 :(得分:0)

与@Mad Physicist pointed out in the comments一样,seaborn更改了图表的许多样式和功能:

代码1

import matplotlib.pyplot as plt

l = [23948.30, 23946.20, 23961.20, 23971.70, 23956.30, 23987.30]

def box_plot(circ_list):
    fig, ax = plt.subplots()
    plt.boxplot(circ_list, 0, 'rs', 0, showmeans=True)
    plt.ylim((0.28, 1.5))
    ax.set_yticks([])
    labels = ["{}".format(int(i)) for i in ax.get_xticks()]
    ax.set_xticklabels(labels)
    ax.spines['right'].set_color('none')
    ax.spines['top'].set_color('none')
    ax.spines['left'].set_color('none')
    ax.spines['bottom'].set_position('center')
    ax.spines['bottom'].set_color('none')
    ax.xaxis.set_ticks_position('bottom')
    plt.savefig('box.png')
    plt.show()

box_plot(l)

剧情1:

enter image description here

代码2

import matplotlib.pyplot as plt
import seaborn as sns            # <--- Only change!!

l = [23948.30, 23946.20, 23961.20, 23971.70, 23956.30, 23987.30]

def box_plot(circ_list):
    fig, ax = plt.subplots()
    plt.boxplot(circ_list, 0, 'rs', 0, showmeans=True)
    plt.ylim((0.28, 1.5))
    ax.set_yticks([])
    labels = ["{}".format(int(i)) for i in ax.get_xticks()]
    ax.set_xticklabels(labels)
    ax.spines['right'].set_color('none')
    ax.spines['top'].set_color('none')
    ax.spines['left'].set_color('none')
    ax.spines['bottom'].set_position('center')
    ax.spines['bottom'].set_color('none')
    ax.xaxis.set_ticks_position('bottom')
    plt.savefig('box.png')
    plt.show()

box_plot(l)

剧情2:

enter image description here