我有一个看似简单的问题。也许这只是我滥用图书馆,但我无法弄清楚它的正确语法。
我必须从一组数据中制作一个箱线图。我希望将x轴放在对数刻度上,但只需写plt.xscale('log')
就可以使x刻度消失。
这是我的代码:
import matplotlib.pyplot as plt
# .. data analysis here ...
plt.boxplot(values, positions = pos, widths = w)
plt.xscale('log')
plt.yscale('log')
plt.show()
结果图像是:
除了没有出现x轴这一事实外,没关系。这个问题有一个简单的解决方案吗?
谢谢!非常感谢任何建议!
答案 0 :(得分:0)
尝试使用plt.autoscale()
或手动设置x轴限制:
import matplotlib.pyplot as plt
import numpy as np
# fake up some data
spread = np.random.rand(50) * 100
center = np.ones(25) * 50
flier_high = np.random.rand(10) * 100 + 100
flier_low = np.random.rand(10) * -100
data = np.concatenate((spread, center, flier_high, flier_low), 0)
spread = np.random.rand(50) * 100
center = np.ones(25) * 40
flier_high = np.random.rand(10) * 100 + 100
flier_low = np.random.rand(10) * -100
d2 = np.concatenate((spread, center, flier_high, flier_low), 0)
data.shape = (-1, 1)
d2.shape = (-1, 1)
data = [data, d2, d2[::2, 0]]
plt.figure()
plt.boxplot(data)
plt.xscale('log')
plt.yscale('log')
plt.autoscale(True)
plt.show()