Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫:在箱子内绘制平均值-需要格式化帮助_Python_Pandas_Matplotlib_Plot_Bins - Fatal编程技术网

Python 熊猫:在箱子内绘制平均值-需要格式化帮助

Python 熊猫:在箱子内绘制平均值-需要格式化帮助,python,pandas,matplotlib,plot,bins,Python,Pandas,Matplotlib,Plot,Bins,我正在做一些太阳系动力学模拟,并一直以这个项目为借口自学一些python/熊猫。由此产生的数据集有1000多条记录,其中包括每个相关天体的轨道倾角、偏心率等值 我试图用熊猫来研究结果数据中~1000个天体(“测试粒子”)的平均轨道倾角,作为半长轴的函数 到目前为止,我一直在做的是: 1) 将数据读入数据帧 df = pd.read_csv('final.csv') 2) 将数据限制在半长轴值范围内(粒子在模拟过程中“分散”,但我想限制我的分析) cf = df[df.a.between(30,

我正在做一些太阳系动力学模拟,并一直以这个项目为借口自学一些python/熊猫。由此产生的数据集有1000多条记录,其中包括每个相关天体的轨道倾角、偏心率等值

我试图用熊猫来研究结果数据中~1000个天体(“测试粒子”)的平均轨道倾角,作为半长轴的函数

到目前为止,我一直在做的是:

1) 将数据读入数据帧

df = pd.read_csv('final.csv')
2) 将数据限制在半长轴值范围内(粒子在模拟过程中“分散”,但我想限制我的分析)

cf = df[df.a.between(30,80)]
3) 绘制给定数量料仓的倾斜平均值

cf.groupby(pd.cut(cf.a, 80))['inc'].mean().plot()
这创建了一个可接受的绘图,但就格式而言,它有两个问题:除非它完全最大化以填充我的屏幕,否则沿x轴的数字会挤压在一起并重叠。它们也不完全是我想看到的:它们显示了垃圾箱的最大和最小值,我更喜欢5秒或类似的直接滴答声

我已尝试将值
(x=None,xticks=None)
传入上面字符串的
plot()
部分,但这对生成的绘图没有影响。我这样做是否可以进行绘图/输出控制

谢谢


G

当我想做这样的事情时,我直接去matplotlib。 我将用以下示例数据展示一个小示例:

df = pd.DataFrame([[1, 2], [2, 7], [3, 6], [4,7], [5,3]], columns=['A', 'B'])
我用
np.linspace
进行剪切,而不是用
pd.cut
进行剪切。 所以

现在,为了绘制它,我想要箱子的中间

plot_centers = (bins [:-1] + bins [1:])/2
plot_values = group.B.mean()
策划

plt.plot(plot_centers, plot_values)
你应该小心处理丢失的数据。在这种情况下,您可以使用
fillna(0)
,使所有
nan
0

plot_values = group.B.mean().fillna(0)

有关如何旋转xticks,请参见dupe。@cᴏʟᴅsᴘᴇᴇᴅ 这不是关于旋转滴答声。它是关于为按箱子分组的绘图获取直接的标签。为了避免混淆,你能在问题中把这一点说得更清楚吗?!此外,这将有助于提供问题的答案(请参阅)。@ImportanceOfBeingErnest信任你,重新打开了dupe。如果您找到了更合适的复制品,请重新关闭。@cᴏʟᴅsᴘᴇᴇᴅ 我甚至不确定这个问题是否可行。但我想,如果有人对此有好的想法,我们不应该阻止回答这个问题。这将允许寻找替代方案(可能不使用
cut
,以不同方式组合数据会有所帮助)。谢谢大家。我将研究最小、完整和可验证的示例。与此同时,KPLauritzen提供的解决方案似乎运行良好。我期待着更多地了解这一切——这很有趣!
plot_values = group.B.mean().fillna(0)