小编Joe*_*ton的帖子

将组ID重新导入pandas数据帧

对于数据帧

In [2]: df = pd.DataFrame({'Name': ['foo', 'bar'] * 3,
   ...:                    'Rank': np.random.randint(0,3,6),
   ...:                    'Val': np.random.rand(6)})
   ...: df
Out[2]: 
  Name  Rank       Val
0  foo     0  0.299397
1  bar     0  0.909228
2  foo     0  0.517700
3  bar     0  0.929863
4  foo     1  0.209324
5  bar     2  0.381515
Run Code Online (Sandbox Code Playgroud)

我对按名称和等级分组并可能获得聚合值感兴趣

In [3]: group = df.groupby(['Name', 'Rank'])
In [4]: agg = group.agg(sum)
In [5]: agg
Out[5]: 
                Val
Name Rank          
bar  0     1.839091
     2     0.381515
foo  0     0.817097
     1     0.209324
Run Code Online (Sandbox Code Playgroud)

但是我希望在原始字段中df包含该行的组号,例如

In [13]: …
Run Code Online (Sandbox Code Playgroud)

python group-by pandas

17
推荐指数
2
解决办法
9263
查看次数

Matplotlib - 固定x轴刻度和自动缩放y轴

我想只绘制数​​组的一部分,修复x部分,但让y部分自动缩放.我尝试如下所示,但它不起作用.

有什么建议?

import numpy as np
import matplotlib.pyplot as plt

data=[np.arange(0,101,1),300-0.1*np.arange(0,101,1)]

plt.figure()

plt.scatter(data[0], data[1])
plt.xlim([50,100])
plt.autoscale(enable=True, axis='y')

plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib

14
推荐指数
3
解决办法
2万
查看次数

matplotlib的中心原点

我需要帮助定制我的情节.我希望画布看起来大致类似于MacOS Grapher的默认2D图形模板(见截图).

澄清 - 我需要

  • 中心轴
  • 网格(最好每1个单位使用一个更暗的网格)
  • 带箭头的轴线
  • 在原点只有一个零(当我尽我所能时,我从x轴得到一个零,从y轴得到第二个.),略微向左移动,所以它不在y轴后面

我真的很感谢你的帮助!

python plot matplotlib

13
推荐指数
1
解决办法
2万
查看次数

numpy中的均方根和矩阵和numpy阵列的并发症

任何人都可以指导我到numpy手册的部分,我可以获得函数来完成均方根计算...(我知道这可以使用np.mean和np.abs完成..不是内置的...如果没有原因??只是好奇..没有进攻)

任何人都可以解释矩阵和数组的复杂性(仅在以下情况):

U是矩阵(T-by-N,或者说是T cross N),Ue是另一个矩阵(T-by-N)我定义k为numpy数组

U[ind,:] 仍然是矩阵

以下列方式 k = np.array(U[ind,:])

当我打印k或输入kipython时

它显示以下内容

K = array ([[2,.3 .....
              ......
                9]])
Run Code Online (Sandbox Code Playgroud)

你会看到双方括号(这使我觉得它是多暗的),它给它的形状=(1,N)

但我不能将它分配给以这种方式定义的数组

l = np.zeros(N)
shape = (,N) or perhaps (N,) something like that

l[:] = k[:]
error:
matrix dimensions incompatible
Run Code Online (Sandbox Code Playgroud)

有没有办法完成我打算做的矢量分配...请不要告诉我这样做l = k(这会失败目的......我在程序中得到不同的错误......我知道原因..如果你需要我可以附上这段代码)

写一个循环是愚蠢的方式..我暂时使用...

我希望我能够解释......我面临的问题......

问候 ...

python numpy

13
推荐指数
5
解决办法
7万
查看次数

如何在垂直条形图matplotlib中放置y轴和第一个条之间的间隙

我有一个条形图代码片段如下所示.当你运行它时,你会得到4个条形,第一个条纹靠y轴.是否可以在y轴和第一个条形图之间留一些空隙?

def plot_graph1():
    xvals = range(4)
    xnames=["one","two","three","four"]
    yvals = [10,30,40,20]
    width = 0.25
    yinterval = 10
    figure = plt.figure()
    plt.grid(True)
    plt.xlabel('x vals')
    plt.ylabel('y vals')
    plt.bar(xvals, yvals, width=width)
    plt.xticks([ x+(width/2) for x in  xvals],[x for x in xnames])
    plt.yticks(range(0,max(yvals),yinterval))
    figure.savefig("barchart.png",format="png")
    plt.show()
if __name__=='__main__':    
    plot_graph1()
Run Code Online (Sandbox Code Playgroud)

输出如下

上面代码生成的条形图

任何帮助赞赏

谢谢

标记

python matplotlib bar-chart

13
推荐指数
1
解决办法
8901
查看次数

旋转xticks会导致在matplotlib中部分隐藏的刻度

我正在创建一个在x轴上具有名称和在y轴上具有时间值(分钟)的图.x轴上的名称是相似的

 ['cooking']18:15:27 ,['study']18:09:19,['travel']18:21:34` etc ..
Run Code Online (Sandbox Code Playgroud)

其中y值为5,1,1等.我将xlabel作为"类别",ylabel作为"持续时间以分钟为单位".

由于xticks是一些长度的字符串,我决定将它们旋转90以避免重叠.现在,蜱被部分隐藏,xlabel已经消失. 绘图xticks部分隐藏,xlabel消失 有什么方法可以让整个情节适应一切......?

谢谢

标记

这是代码片段

import matplotlib.pyplot as plt
...
figure = plt.figure()
barwidth = 0.25
ystep = 10
plt.grid(True)
plt.xlabel('categories')
plt.ylabel('durations in  minutes')
plt.title('durations for categories-created at :'+now)
plt.bar(xdata, ydata, width=barwidth,align='center')
plt.xticks(xdata,catnames,rotation=90)
plt.yticks(range(0,maxduration+ystep,ystep))
plt.xlim([min(xdata) - 0.5, max(xdata) + 0.5])
plt.ylim(0,max(ydata)+ystep)
figure.savefig("myplot.png",format="png")
Run Code Online (Sandbox Code Playgroud)

python label matplotlib rotation

13
推荐指数
3
解决办法
2万
查看次数

Matplotlib中的散点图轮廓

我有一个庞大的散点图(~100,000点),我在matplotlib中生成.每个点在此x/y空间中都有一个位置,我想生成包含总点数的某些百分位数的轮廓.

matplotlib中是否有一个函数可以执行此操作?我已经研究过contour(),但是我必须用这种方式编写自己的函数.

谢谢!

python matplotlib scatter-plot contour

12
推荐指数
1
解决办法
1万
查看次数

Matplotlib:使最终图形尺寸与savefig()和bbox_extra_artists匹配figsize

我正在使用matplotlib生成用于出版的图形,并且需要非常精确的图形输出.我需要这个,以便我可以确定在插入乳胶文档时不需要调整图形,这会弄乱图中的字体大小,我想保持与字体大小的一致比例主要文件.

我需要使用这个bbox_extra_artists参数,savefig因为如果我不这样做的话,我会在底部有一个传说.我遇到的问题是,我还没有找到一个办法让原图尺寸我指定figsize创建调用后兑现的情节时savefigbbox_extra_artists.

我的电话savefig看起来像这样:

savefig(output_file, bbox_inches='tight', pad_inches=0.0,dpi=72.27,bbox_extra_artists=(lgd,tp,ur,hrs))
Run Code Online (Sandbox Code Playgroud)

我指定的图形宽度figsize是:

516.0 * (1/72.27) = 7.1398 inches = 181.3532 millimeters 
Run Code Online (Sandbox Code Playgroud)

我使用savefig()上面的调用获得的输出PDF宽度是171 millimeters(不是所需的181.3532毫米).

我在其他问题上提到的解决方案是在SO上打电话给tight_layout().所以,紧接着我的savefig()电话,我提出以下内容:

plt.tight_layout(pad=0.0,h_pad=0.0,w_pad=0.0)
Run Code Online (Sandbox Code Playgroud)

这会产生一个宽度的图形183 millimeters(同样,不是我想要的181.3532毫米).如果我使用tight_layout,并bbox_extra_artists从我的调用中删除参数savefig(),我得到的宽度190 millimeters(再次,不是我想要的181.3532毫米).除了bbox_extra_artists在我的情况下删除通过切断事物来破坏数字之外.

所以我想这是一个两部分问题:

  • 使用时tight_layout,即使没有bbox_extra_artists,为什么输出数字大小不正确?
  • 没有办法在使用时获得正确大小的数字bbox_extra_artists

我知道几毫米听起来像是一个微不足道的差异,但事实上,与我有任何不同之处.这意味着存在一些变量,这可能会在我的其他数字中发生变化,从而导致一定程度的误差,并且该错误可能会在其他地方被放大.

python plot matplotlib

11
推荐指数
1
解决办法
7018
查看次数

在pylab模式下绘制矩形(add_patch)

我在pylab模式下使用IPython(所有函数都在fingertip),并想要注释某些情节,让我们说plot([1,3,2])矩形Rectangle((1,1),1,1)

如何在这个pylab模式下绘制一个简单的矩形,即不使用图形,轴,子图......但是参考只是以最简单的方式创建了图形

python matplotlib

10
推荐指数
1
解决办法
2万
查看次数

如何在MayaVi中绘制正确的3D轴,就像在Matplotlib中找到的那样

我想知道如何在MayaVi中的3D曲面图上使用正确的轴.我能创造的最佳轴看起来像这样 ......

在此输入图像描述

但是,如果我要做一个演示或把它们放在海报上,这些看起来不太专业.

我希望轴看起来像这样 ......

在此输入图像描述

与默认的MayaVi轴相比,这些轴看起来更专业,更易于阅读.

任何帮助将不胜感激.

谢谢!

python 3d plot matplotlib mayavi

10
推荐指数
1
解决办法
2854
查看次数

标签 统计

python ×10

matplotlib ×8

plot ×3

3d ×1

bar-chart ×1

contour ×1

group-by ×1

label ×1

mayavi ×1

numpy ×1

pandas ×1

rotation ×1

scatter-plot ×1