小编Roh*_*hit的帖子

一个传奇的两个独特的标记符号

我想在图例下的"红色圆圈"符号旁边添加一个"红色填充方形"符号.我该如何实现这一目标?我更喜欢坚持使用pyplot而不是pylab.

以下是我一直在使用的代码:

fig = plt.figure()
ax1 = fig.add_axes([0.1,0.29,0.86,0.68])
plt.ylabel('Radial Velocity (km s$^{-1}$)')
plt.plot(time_model, rv_model_primary, 'k-', label = 'Primary')
plt.plot(time_model_sec, rv_model_secondary, 'k--', label = 'Secondary')
plt.plot(time_obs, rv_obs_primary, 'bo', label='XYZ')

plt.plot(time_obs_apg, rv_obs_primary_apg, 'ro', label='This Work')
plt.plot(time_obs_apg_sec, rv_obs_secondary_apg, 'rs')
plt.plot((0.0, 1.0),(0.0,0.0), 'k-.')
plt.legend(loc='upper left', numpoints=1) 
Run Code Online (Sandbox Code Playgroud)

这是我试过的:

p1=plt.plot(time_model, rv_model_primary, 'k-')
p2=plt.plot(time_model_sec, rv_model_secondary, 'k--')
p3=plt.plot(time_obs, rv_obs_primary, 'bo')
p4=plt.plot(time_obs_apg, rv_obs_primary_apg, 'ro')
p5=plt.plot(time_obs_apg_sec, rv_obs_secondary_apg, 'rs')

plt.legend([p1,p2,p3,(p4,p5)],["Primary", "Secondary", "XYZ", "This Work"])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在使用tcaswell的建议更改代码后,我得到以下内容.看起来不错,但我希望只有一个蓝色符号,同时保持两个为红色.目前有两个.

在此输入图像描述

通过将numpoints = 1添加到常规图例()的最终解决方案起作用.这就是我想要的方式.谢谢tcaswell!

在此输入图像描述

python matplotlib

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

空心圆圈符号中的误差线

我希望当我使用 plt.errorbars 时,灰色点根本不会出现在空心圆圈符号内。我发现了一个类似的问题,但它使用了 ggplot。

误差线通过开放符号显示

除非别无选择,否则我想坚持使用 pyplot。我的代码如下。提前致谢。

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0,5,0.1)
y = np.sin(x)
yerr = np.random.randint(2,size=len(x))
plt.errorbar(x,y,yerr=yerr, color='gray', fmt='.', zorder=1)
plt.plot(x,y,'ro', mfc='none', label='My work')
plt.legend(numpoints=1)
plt.show() 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python matplotlib

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

基于小时/分钟/秒拆分 DateTimeIndex 数据

我有时间序列数据,我想根据小时、分钟或秒进行拆分。这通常是用户定义的。我想知道如何做到这一点。

例如,请考虑以下情况:

test = pd.DataFrame({'TIME': pd.date_range(start='2016-09-30',
                                           freq='600s', periods=20)})
test['X'] = np.arange(20)
Run Code Online (Sandbox Code Playgroud)

输出是:

    TIME                X
0   2016-09-30 00:00:00 0
1   2016-09-30 00:10:00 1
2   2016-09-30 00:20:00 2
3   2016-09-30 00:30:00 3
4   2016-09-30 00:40:00 4
5   2016-09-30 00:50:00 5
6   2016-09-30 01:00:00 6
7   2016-09-30 01:10:00 7
8   2016-09-30 01:20:00 8
9   2016-09-30 01:30:00 9
10  2016-09-30 01:40:00 10
11  2016-09-30 01:50:00 11
12  2016-09-30 02:00:00 12
13  2016-09-30 02:10:00 13
14  2016-09-30 02:20:00 14
15  2016-09-30 02:30:00 15
16  2016-09-30 …
Run Code Online (Sandbox Code Playgroud)

pandas datetimeindex

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

Numpy'在哪里'字符串

我想在字符串数组上使用numpy.where函数.但是,我没有成功.有人可以帮我解决这个问题吗?

例如,当我numpy.where在以下示例中使用时,我收到一个错误:

import numpy as np

A = ['apple', 'orange', 'apple', 'banana']

arr_index = np.where(A == 'apple',1,0)
Run Code Online (Sandbox Code Playgroud)

我得到以下内容:

>>> arr_index
array(0)
>>> print A[arr_index]
>>> apple
Run Code Online (Sandbox Code Playgroud)

但是,我想知道字符串数组中的索引,A其中字符串'apple'匹配.在上面的字符串中,这发生在0和2.但是,np.where只返回0而不是2.

那么,我该如何numpy.where处理字符串呢?提前致谢.

python numpy where

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

在matplotlib中向下箭头符号

我想创建一个图,其中一些点有一个向下箭头(见下图).在天文学中,这说明真实值实际上低于测量值.注意只有一些点具有此符号.

我想知道如何在matplotlib中创建这样的符号.我可以使用向下箭头符号吗?

感谢您的帮助!

在此输入图像描述

python plot matplotlib

4
推荐指数
2
解决办法
7572
查看次数

跳过genfromtxt中的行

我有下表:

 2M00251602+5422547            7.180          9.000          2.200
#2M00255540+5749320            4.420          5.200          1.600
 2M00274401+5330504            4.400          6.800          2.700
 2M00331747+6327504            4.540          5.900          0.400
#2M00333033+7054422            4.350          6.700          0.700
 2M00350487+5953079            5.310          7.400          1.100
Run Code Online (Sandbox Code Playgroud)

我想跳过带有#标签的行.怎么请genfromtxt跳过有标签符号的行?

注意:标签不需要在那里.我只需要跳过用户指定的行.

我知道在READLOL下的IDL中,可以做SKIPSTRING ='#'.genfromtxt中有类似的东西吗?如果没有,我可以用什么程序/包来读取这样的表并跳过用户指定的行?

提前致谢!

numpy genfromtxt

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

在Pandas中选择两个DataFrame之间的唯一行

我有两个不等维的数据框A和B. 我想创建一个数据框C,使它只包含A和B之间唯一的行.我试图遵循这个解决方案(根据列值而不是索引值排除pandas数据帧中的行)但是无法得到它上班.

这是一个例子:

假设这是DF_A:

    Star_ID         Loc_ID      pmRA        pmDE    Field     Jmag    Hmag  
 2M00000032+5737103  4264    0.000000    0.000000    N7789   10.905  10.635
 2M00000068+5710233  4264    8.000000    -18.000000  N7789   10.664  10.132
 2M00000222+5625359  4264    0.000000    0.000000    N7789   11.982  11.433
 2M00000818+5634264  4264    0.000000    0.000000    N7789   12.501  11.892
 2M00001242+5524391  4264    0.000000    -4.000000   N7789   12.091  11.482
Run Code Online (Sandbox Code Playgroud)

这是DF_B:

2M00000032+5737103  
2M00000068+5710233
2M00001242+5524391
Run Code Online (Sandbox Code Playgroud)

因此,前两个和最后一个Star_ID在DF_A和DF_B之间是通用的.我想创建DF_C,以便:

DF_C:

        Star_ID         Loc_ID      pmRA        pmDE    Field     Jmag    Hmag
     2M00000222+5625359  4264    0.000000    0.000000    N7789   11.982  11.433
     2M00000818+5634264  4264    0.000000    0.000000    N7789   12.501  11.892
Run Code Online (Sandbox Code Playgroud)

python pandas

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

%load_ext rpy2.ipython找不到图像错误

我试图在ipython中使用magic命令,这是我在这里看到的: rpy2幻灯片

我做了以下事情:

import rpy2.ipython
%load_ext rpy2.ipython
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

ImportError: dlopen(/Users/XXX/anaconda/lib/python2.7/site-packages/rpy2/rinterface/_rinterface.so,
Run Code Online (Sandbox Code Playgroud)

2):未加载库:libicuuc.54.dylib引用自:/Users/XXX/anaconda/lib/python2.7/site-packages/rrp2/proginter/_rinterface.so原因:未找到图像

一些相关信息:

  • 操作系统:MacOS Sierra
  • Python:2.7.12
  • iPython:IPython 5.1.0
  • rpy2:2.8.3
  • 做了pip install singledispatch,但错误仍然存在
  • 使用conda安装r
  • 还有来自CRAN的R副本

rpy2

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

将时间序列pySpark数据帧拆分为测试和训练,而无需使用随机拆分

我有一个火花时间序列数据框。我想将其拆分为80-20(训练测试)。由于这是一个时间序列数据帧,因此我不想进行随机拆分。为了将第一个数据帧传递到训练中并传递第二个数据帧进行测试,我该怎么做?

python rdd apache-spark-sql pyspark

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