对于数据帧
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) 我想只绘制数组的一部分,修复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) 我需要帮助定制我的情节.我希望画布看起来大致类似于MacOS Grapher的默认2D图形模板(见截图).

澄清 - 我需要
我真的很感谢你的帮助!
任何人都可以指导我到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(这会失败目的......我在程序中得到不同的错误......我知道原因..如果你需要我可以附上这段代码)
写一个循环是愚蠢的方式..我暂时使用...
我希望我能够解释......我面临的问题......
问候 ...
我有一个条形图代码片段如下所示.当你运行它时,你会得到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)
输出如下

任何帮助赞赏
谢谢
标记
我正在创建一个在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已经消失.
有什么方法可以让整个情节适应一切......?
谢谢
标记
这是代码片段
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) 我有一个庞大的散点图(~100,000点),我在matplotlib中生成.每个点在此x/y空间中都有一个位置,我想生成包含总点数的某些百分位数的轮廓.
matplotlib中是否有一个函数可以执行此操作?我已经研究过contour(),但是我必须用这种方式编写自己的函数.
谢谢!
我正在使用matplotlib生成用于出版的图形,并且需要非常精确的图形输出.我需要这个,以便我可以确定在插入乳胶文档时不需要调整图形,这会弄乱图中的字体大小,我想保持与字体大小的一致比例主要文件.
我需要使用这个bbox_extra_artists参数,savefig因为如果我不这样做的话,我会在底部有一个传说.我遇到的问题是,我还没有找到一个办法让原图尺寸我指定figsize创建调用后兑现的情节时savefig用bbox_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?我知道几毫米听起来像是一个微不足道的差异,但事实上,与我有任何不同之处.这意味着存在一些变量,这可能会在我的其他数字中发生变化,从而导致一定程度的误差,并且该错误可能会在其他地方被放大.
我在pylab模式下使用IPython(所有函数都在fingertip),并想要注释某些情节,让我们说plot([1,3,2])矩形Rectangle((1,1),1,1)
如何在这个pylab模式下绘制一个简单的矩形,即不使用图形,轴,子图......但是参考只是以最简单的方式创建了图形