gpt4 book ai didi

python - 如何在matplotlib中设置刻度之间的固定间距

转载 作者:行者123 更新时间:2023-11-30 22:17:42 29 4
gpt4 key购买 nike

我正在准备延迟百分位结果图表。这是我的 pd.DataFrame 看起来像:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
result = pd.DataFrame(np.random.randint(133000, size=(5,3)), columns=list('ABC'), index=[99.0, 99.9, 99.99, 99.999, 99.9999])

我正在使用这个函数(注释行是我已经尝试实现目标的不同 pyplot 方法):

def plot_latency_time_bar(result):

ind = np.arange(4)
means = []
stds = []

for index, row in result.iterrows():
means.append(np.mean([row[0]//1000, row[1]//1000, row[2]//1000]))
stds.append(np .std([row[0]//1000, row[1]//1000, row[2]//1000]))

plt.bar(result.index.values, means, 0.2, yerr=stds, align='center')


plt.xlabel('Percentile')
plt.ylabel('Latency')
plt.xticks(result.index.values)
# plt.xticks(ind, ('99.0', '99.9', '99.99', '99.999', '99.99999'))
# plt.autoscale(enable=False, axis='x', tight=False)
# plt.axis('auto')
# plt.margins(0.8, 0)
# plt.semilogx(basex=5)
plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)


fig = plt.gcf()
fig.set_size_inches(15.5, 10.5)

And here is the figure:

正如您所看到的,99.0 以上的所有百分位数的条形图都重叠并且完全不可读。我想在刻度之间设置一些固定的间距,以便在所有刻度之间具有相同的间距。

最佳答案

由于您使用的是 pandas,因此您可以在该库中完成所有这些操作:

means = df.mean(axis=1)/1000
stds = df.std(axis=1)/1000
means.plot.bar(yerr=stds, fc='b')

# Make some room for the x-axis tick labels
plt.subplots_adjust(bottom=0.2)
plt.show()

enter image description here

关于python - 如何在matplotlib中设置刻度之间的固定间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49556911/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com