我想在图例下的"红色圆圈"符号旁边添加一个"红色填充方形"符号.我该如何实现这一目标?我更喜欢坚持使用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!

我希望当我使用 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)

我有时间序列数据,我想根据小时、分钟或秒进行拆分。这通常是用户定义的。我想知道如何做到这一点。
例如,请考虑以下情况:
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) 我想在字符串数组上使用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处理字符串呢?提前致谢.
我想创建一个图,其中一些点有一个向下箭头(见下图).在天文学中,这说明真实值实际上低于测量值.注意只有一些点具有此符号.
我想知道如何在matplotlib中创建这样的符号.我可以使用向下箭头符号吗?
感谢您的帮助!

我有下表:
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中有类似的东西吗?如果没有,我可以用什么程序/包来读取这样的表并跳过用户指定的行?
提前致谢!
我有两个不等维的数据框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) 我试图在ipython中使用magic命令,这是我在这里看到的: rpy2幻灯片
我做了以下事情:
import rpy2.ipython
%load_ext rpy2.ipython
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
Run Code Online (Sandbox Code Playgroud)ImportError: dlopen(/Users/XXX/anaconda/lib/python2.7/site-packages/rpy2/rinterface/_rinterface.so,2):未加载库:libicuuc.54.dylib引用自:/Users/XXX/anaconda/lib/python2.7/site-packages/rrp2/proginter/_rinterface.so原因:未找到图像
一些相关信息:
pip install singledispatch,但错误仍然存在我有一个火花时间序列数据框。我想将其拆分为80-20(训练测试)。由于这是一个时间序列数据帧,因此我不想进行随机拆分。为了将第一个数据帧传递到训练中并传递第二个数据帧进行测试,我该怎么做?
python ×6
matplotlib ×3
numpy ×2
pandas ×2
genfromtxt ×1
plot ×1
pyspark ×1
rdd ×1
rpy2 ×1
where ×1