在matplotlib框p中记录xscale

2024-04-30 03:16:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个很简单的问题。也许只是我误用了这个库,但我不知道什么是正确的语法。在

我得根据一组数据做一个盒形图。我想把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()

得到的图像是:

enter image description here

这没关系,除了x轴没有出现。这个问题有简单的解决办法吗?在

谢谢你!任何建议都将不胜感激!在


Tags: 数据代码importlogdatamatplotlibas语法
1条回答
网友
1楼 · 发布于 2024-04-30 03:16:10

尝试使用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()

enter image description here

相关问题 更多 >