小编Nic*_*llo的帖子

如何为散点图设置动画?

我正在尝试制作散点图的动画,其中点的颜色和大小在动画的不同阶段发生变化.对于数据,我有两个numpy ndarray,x值和y值:

data.shape = (ntime, npoint)
x.shape = (npoint)
y.shape = (npoint)
Run Code Online (Sandbox Code Playgroud)

现在我想绘制一个类型的散点图

pylab.scatter(x,y,c=data[i,:])
Run Code Online (Sandbox Code Playgroud)

并在索引上创建一个动画i.我该怎么做呢?

python matplotlib

57
推荐指数
4
解决办法
6万
查看次数

带有大量数据的散点图

我想用Matplotlib生成一个包含大量数据(大约300万个点)的散点图.实际上我有3个具有相同尺寸的矢量,我用以下面的方式绘制.

import matplotlib.pyplot as plt
import numpy as np
from numpy import *
from matplotlib import rc
import pylab
from pylab import * 
fig = plt.figure()
fig.subplots_adjust(bottom=0.2)
ax = fig.add_subplot(111)
plt.scatter(delta,vf,c=dS,alpha=0.7,cmap=cm.Paired)
Run Code Online (Sandbox Code Playgroud)

实际上没什么特别的.但实际生成它需要很长时间(我正在使用Python 2.7和Matplotlib 1.0处理我的MacBook Pro 4 GB RAM).有没有办法提高速度?

python numpy matplotlib

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

大熊猫阅读csv方向

嘿我正在尝试在大熊猫中读取你可以从这里下载的csv文件(euribor率我认为你可以想象我想拥有这个文件的原因!).该文件是一个CSV文件,但它有点奇怪的方向.如果您在Excel文件中导入它具有格式

   02/01/2012,03/01/2012,04/01/2012,,,, 
1w 0.652,0.626,0.606,,,,
2w,0.738,0.716,0.700,,,,
Run Code Online (Sandbox Code Playgroud)

第一列的行为可达12米(但我已经为您提供了可以下载样本的链接).我想在熊猫中阅读它,但我无法以正确的方式阅读它.Pandas有一个用于读取csv文件的内置函数,但不知何故,它希望是面向行而不是面向列.我想要做的是获取标记为3m的行的信息并具有值和日期以绘制该索引的时间变化.但我无法解决这个问题.我知道我可以读取数据

import pandas 
data = pandas.io.read_csv("file.csv",parse_dates=True) 
Run Code Online (Sandbox Code Playgroud)

但如果csv文件以某种方式转置,它将工作.H

python csv pandas

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

matplotlib boxplot颜色

我正在尝试创建一个包含y和x的数据集的盒子和胡须图.我发现了一个有用的例子,在matplotlib中使用numpy和scipy在Python制作binned boxplot.问题现在非常简单.如何在matplotlib.pyplot.boxplot中指定框的颜色,因为我想将其设置为透明,以便让读者也能看到原始数据.我知道http://matplotlib.sourceforge.net/examples/pylab_examples/boxplot_demo2.html中有一个示例,但有什么比这简单吗?在boxplot中直接设置盒子颜色的不可能看起来很奇怪谢谢你提前

numpy matplotlib

7
推荐指数
1
解决办法
9250
查看次数

在emacs 23和emacs 24之间共享emacs配置

我正在尝试将所有emacs配置置于版本控制之下,以便在不同的计算机之间轻松切换.实际上我的首选系统是OSX(10.8.3),其中包含来自http://emacsformacosx.com/的 emacs 24.3 .但我也可以在其他系统中工作(更可能是基于linux的,虽然不同的发行版ubuntu/scientific-linux),它们通常都配备了emacs 23.4.我想要的是一个init文件,它检查emacs和操作系统的版本,从emacs包管理器加载所需的包.到目前为止,我在OSX上的emacs 24.3的.emacs init文件如下所示

(require 'package)
(setq package-archives '(
    ("marmalade" . "http://marmalade-repo.org/packages/")
    ("org" . "http://orgmode.org/elpa/")
    ("melpa" . "http://melpa.milkbox.net/packages/")))
(package-initialize)
Run Code Online (Sandbox Code Playgroud)

之后有配置(例如单独加载)

(load "python-sy")
Run Code Online (Sandbox Code Playgroud)

它使用了一些未默认安装的软件包:特别是

color-theme
org-mode
theme-changer
ess-site
magit
auctex
python.el (fgallina implementation)
Run Code Online (Sandbox Code Playgroud)

加上一些依赖于已经内置的软件包的东西我承认我不知道如何开始拥有一个可以在所有设备中无差别地使用的.emacs init文件.此外,我还想有一种方法来加载基于系统配置的url-proxy-services

(setq url-proxy-services '(("http" . "proxy.server.com:8080")))
Run Code Online (Sandbox Code Playgroud)

感谢您的任何帮助

emacs emacs23 emacs24

5
推荐指数
1
解决办法
720
查看次数

matplotlib pyplot colorbar问题

亲爱的,我正在尝试使用带有相关颜色条的颜色执行散点图.我希望colorbar具有字符串值而不是数值,因为我正在比较两个不同的数据集,每个数据集具有不同的颜色值(但无论如何在最大值和最小值之间).这里是我正在使用的代码

import matplotlib.pyplot as plt
import numpy as np
from numpy import *
from matplotlib import rc
import pylab
from pylab import *
from matplotlib import mpl
data   = np.loadtxt('deltaBinned.txt')
data2  = np.loadtxt('deltaHalphaBinned.txt')
fig=plt.figure()
fig.subplots_adjust(bottom=0.1)
ax=fig.add_subplot(111)
plt.xlabel(r'$\partial \Delta/\partial\Phi[$mm$/^{\circ}]$',fontsize=16)
plt.ylabel(r'$\Delta$ [mm]',fontsize=16)
plt.scatter(data[:,0],data[:,1],marker='o',c=data[:,3],s=data[:,3]*1500,cmap=cm.Spectral,vmin=min(data[:,3]),vmax=max(data[:,3]))
plt.scatter(data2[:,0],data2[:,1],marker='^',c=data2[:,2],s=data2[:,2]*500,cmap=cm.Spectral,vmin=min(data2[:,2]),vmax=max(data2[:,2]))
cbar=plt.colorbar(ticks=[min(data2[:,2]),max(data2[:,2])])
cbar.set_ticks(['Low','High'])
cbar.set_label(r'PdF')
plt.show()
Run Code Online (Sandbox Code Playgroud)

不幸的是,它不起作用,因为cbar.set_ticks不接受字符串值.我已经阅读了 http://matplotlib.sourceforge.net/examples/pylab_examples/colorbar_tick_labelling_demo.html,但我无法将其改编为我的案例.如果问题很简单,我很抱歉,但我只是在python编程Nicola的开头.

python matplotlib

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

从Pandas DataFrame中提取多个非连续索引值

我已经创建了一个pandas数据框,通过以下方式从scipy.io读取它(file.sav是在不同的机器上创建的IDL结构.scipy.io创建一个标准的python字典):

from scipy import io
import pandas as p
import numpy as np
tmp=io.readsav('file.sav', python_dict = True)
df=pd.DataFrame(tmp,index=tmp['shots'].astype('int32'))
Run Code Online (Sandbox Code Playgroud)

数据帧包含了一组值(从file.sav)和作为指数一系列形式19999,20000,30000等的整数现在我想借这些指数的一个子集,说:

df.loc[[19999,20000]]
Run Code Online (Sandbox Code Playgroud)

由于某些原因,我得到表格的错误

raise ValueError('Cannot index with multidimensional key')
Run Code Online (Sandbox Code Playgroud)

加上其他和最后

ValueError: Big-endian buffer not supported on little-endian compiler
Run Code Online (Sandbox Code Playgroud)

但是我已经检查过我正在处理的机器和创建了file.sav的机器都是小端.所以我认为这不是问题所在.

python pandas

3
推荐指数
1
解决办法
2405
查看次数

傅里叶或时域积分

我正在努力理解信号数值积分的问题。基本上,我有一个信号,我想将其积分或执行,并将其反导作为时间的函数(用于获取磁场的拾波线圈的积分)。我尝试了两种不同的方法,原则上应该是一致的,但事实并非如此。我正在使用的代码如下。请注意,代码中的信号 y 之前已经使用巴特沃斯滤波进行了高通滤波(类似于此处所做的http://wiki.scipy.org/Cookbook/ButterworthBandpass)。信号和时间基准可以在此处下载(https://www.dropbox.com/s/fi5z38sae6j5410/Trial.npz?dl=0

import scipy as sp
from scipy import integrate
from scipy import fftpack
data = np.load('trial.npz')
y = data['arr_1'] # this is the signal 
t = data['arr_0']
# integration using pfft
bI = sp.fftpack.diff(y-y.mean(),order=-1)
bI2= sp.integrate.cumtrapz(y-y.mean(),x=t)
Run Code Online (Sandbox Code Playgroud)

现在,这两个信号(除了可以取出的最终不同的线性趋势之外)是不同的,或者更好的是动态地它们在相同的振荡时间下非常相似,但是两个信号之间存在大约 30 的系数,在这个意义上bI2 比 bI 低 30 倍(大约)。顺便说一句,我减去了两个信号的平均值,以确保它们是零均值信号,并在 IDL 中执行积分(均具有等效的 cumsumtrapz 和傅里叶域)给出与 bI2 兼容的值。任何线索都非常受欢迎

python scipy

3
推荐指数
1
解决办法
3258
查看次数

Matplotlib 插图极坐标图

我试图在笛卡尔坐标中的正常 x 与 y 图中插入极坐标图。我知道插图可以通过 pylab.axes 获得,如本所示。但我不知道如何指定这是一个极坐标图,可能没有任何网格。欢迎任何帮助

python matplotlib

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

标签 统计

python ×7

matplotlib ×5

numpy ×2

pandas ×2

csv ×1

emacs ×1

emacs23 ×1

emacs24 ×1

scipy ×1