Python 2.7 更改Python Probplot中的标记样式/颜色

Python 2.7 更改Python Probplot中的标记样式/颜色,python-2.7,matplotlib,scipy,Python 2.7,Matplotlib,Scipy,我使用的是Python 2.7,并使用scipy.stats.probplot函数创建了一个概率图。我想更改图形的元素,例如标记的颜色/形状/大小以及最佳拟合趋势线的颜色/宽度。的文档似乎没有任何更改这些项目的选项 以下是我的代码(相关部分): 我尝试抓取xy数据,并使用ax.get_xydata()和fig.get_xydata()创建自己的散点图。但是,这两个都失败了,因为两个对象都没有将get_xydata()作为函数。我的代码当前生成的数字是: 关键是与matplotlib的组合 您可以

我使用的是Python 2.7,并使用scipy.stats.probplot函数创建了一个概率图。我想更改图形的元素,例如标记的颜色/形状/大小以及最佳拟合趋势线的颜色/宽度。的文档似乎没有任何更改这些项目的选项

以下是我的代码(相关部分):

我尝试抓取xy数据,并使用ax.get_xydata()和fig.get_xydata()创建自己的散点图。但是,这两个都失败了,因为两个对象都没有将get_xydata()作为函数。我的代码当前生成的数字是:


关键是与matplotlib的组合

您可以使用
ax.get\u lines()
从访问。然后,可以相应地更改属性

您可能需要找出哪个索引与标记相关,哪个与行相关。在下面的示例中,标记首先出现,因此:

ax.get_lines()[0].set_marker('p')
趋势线是第二条:

ax.get_lines()[1].set_linewidth(12.0)
下面的示例基于:

这样创建的绘图看起来很难看,但展示了以下功能:


文本(
r^2=0.9616
)可以通过更通用的
get_children
从以下轴访问:

ax.get_children()[2].set_fontsize(22.0)
如果不了解这些项目的索引,您可以尝试:

print ax.get_children()
这给了你:

[<matplotlib.lines.Line2D object at 0x33f4350>, <matplotlib.lines.Line2D object at 0x33f4410>, 
<matplotlib.text.Text object at 0x33f4bd0>, <matplotlib.spines.Spine object at 0x2f2ead0>, 
<matplotlib.spines.Spine object at 0x2f2e8d0>, <matplotlib.spines.Spine object at 0x2f2e9d0>, 
<matplotlib.spines.Spine object at 0x2f2e7d0>, <matplotlib.axis.XAxis object at 0x2f2eb90>, 
<matplotlib.axis.YAxis object at 0x2f37690>, <matplotlib.text.Text object at 0x2f45290>, 
<matplotlib.text.Text object at 0x2f45310>, <matplotlib.text.Text object at 0x2f45390>, 
<matplotlib.patches.Rectangle object at 0x2f453d0>]
[,,
, 
, 
, 
, 
, 
]

我假设(不久将进行测试)get_line()[2]将是r^2文本?非常感谢。@TravisJ-不完全是,它不是一个line对象,而是一个text对象。看我的编辑。我希望我能投两次赞成票。这很有帮助。我假设每个孩子都是情节的某个方面(可能是背景、勾号标签、情节内容——散点、线条、文本等)。@TravisJ-是的。与轴相关的一切都在这个子对象中,probplot的这种行为是否有记录,或者在未来的版本中项目的顺序是否会改变?
print ax.get_children()
[<matplotlib.lines.Line2D object at 0x33f4350>, <matplotlib.lines.Line2D object at 0x33f4410>, 
<matplotlib.text.Text object at 0x33f4bd0>, <matplotlib.spines.Spine object at 0x2f2ead0>, 
<matplotlib.spines.Spine object at 0x2f2e8d0>, <matplotlib.spines.Spine object at 0x2f2e9d0>, 
<matplotlib.spines.Spine object at 0x2f2e7d0>, <matplotlib.axis.XAxis object at 0x2f2eb90>, 
<matplotlib.axis.YAxis object at 0x2f37690>, <matplotlib.text.Text object at 0x2f45290>, 
<matplotlib.text.Text object at 0x2f45310>, <matplotlib.text.Text object at 0x2f45390>, 
<matplotlib.patches.Rectangle object at 0x2f453d0>]