日志空间中的Python柱状图,其中一个bin以特定值为中心

2024-05-29 04:59:18 发布

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

我试图在matplotlib中创建一个直方图,以满足一些特定的需求,但遇到了一些问题。它需要做的是:

  1. 两个轴都需要在日志空间中
  2. 垃圾箱在原木空间中的大小必须一致
  3. 每个dex需要正好有五个箱子(数量级)
  4. 其中三个箱子需要居中于/包括值1、10和100

我已经算出了1-3,但是找不到一个方法来完成4。这就是我正在做的。实际数据来自熊猫数据帧。已更新此问题以提供示例

data = np.random.uniform(0.01,300,size=200)
dataframe = pd.DataFrame(data)

plt.figure()
plt.hist(dataframe[0],bins=np.logspace(np.log10(0.1),np.log10(1000),21),edgecolor='k',facecolor='None',align='mid')
plt.gca().set_xscale('log')
plt.gca().set_yscale('log')

这将是完美的,除了不满足4。有人对如何协调这些要求有什么建议吗?非常感谢你

电流输出

enter image description here


Tags: 数据logdataframedatamatplotlibnp空间plt
1条回答
网友
1楼 · 发布于 2024-05-29 04:59:18

这一点的关键似乎是生成右侧的垃圾箱边界,因此,如果您添加一个额外的垃圾箱,并将其全部向左移动半个垃圾箱,您将得到此结果

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

data = np.random.uniform(0.01, 300, size=200)
dataframe = pd.DataFrame(data)

plt.figure()
plt.hist(dataframe[0], bins=10.0 ** np.linspace(-1.1, 3.1, 22),
         edgecolor='k', facecolor='None', align='mid')
plt.gca().set_xscale('log')
plt.gca().set_yscale('log')
plt.show()

enter image description here

相关问题 更多 >

    热门问题