- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想在散点图中按年份注释我的情节。此外,我还想在 pandas 数据框中的不同列上添加标签(添加图例),在本例中为列:ds ['Label']。我已经成功地用年份来注释散点,但我仍然不知道如何标记不同列中的数据。
这是我的示例代码
ds
Label Year factor1 factor2 factor3 factor4
0 A 2013 0.318451 0.038893 -0.145478 0.023298
1 B 2013 0.327400 -0.083985 -0.164712 -0.216095
2 C 2013 0.262333 0.251492 0.095186 -0.062729
3 D 2013 0.035074 -0.044357 -0.464473 -0.096461
4 E 2013 0.214464 -0.131810 0.065335 -0.339014
5 F 2013 -0.456510 0.111790 0.358160 0.327663
6 A 2012 0.345147 -0.010345 -0.139058 -0.033598
7 B 2012 0.318605 -0.096974 -0.168039 0.240126
8 C 2012 0.387761 0.145134 0.025229 -0.009165
9 D 2012 -0.007707 -0.033737 -0.401118 0.147932
10 E 2012 0.204582 -0.112144 0.007970 0.367639
11 F 2012 -0.439852 0.128267 0.355429 -0.375302
ds.columnsx=ds['factor2']
y=ds['factor1']
colors = {'A': 'b','B': 'purple', 'C': 'r','D' : 'grey','E' : 'green', 'F' : 'magenta'}
size= 2 *500
x=df['factor2']
y=df['factor1']
labels=df['Year']
fig=figure(1, figsize=(10,8))
ax1 = fig.add_subplot(111)
ax1.scatter(x, y, s=size, alpha=0.7, label=labels, color=[colors[i] for i in ds['Label']])
for label, x, y in zip(labels, x, y):
plt.annotate(label, xy = (x, y),fontsize = 15)
grid(True)
ax1.spines['bottom'].set_color('orange')
ax1.spines['left'].set_color('green')
ax1.xaxis.label.set_color('orange')
ax1.yaxis.label.set_color('green')
ax1.tick_params(axis='x', colors='k')
plt.title('Something', fontsize = 15)
plt.xlabel('Something')
plt.ylabel('Something')
plt.tight_layout()
plt.show()
最佳答案
您的问题有点不清楚,但我认为您想要一个与 ds['Label']
中的标签相对应的图例。实现此目的的方法是为每组点调用一次 ax1.scatter,如 this question 所示。 。例如:
colors = {'A': 'b','B': 'purple', 'C': 'r','D' : 'grey','E' : 'green', 'F' : 'magenta'}
size= 1000
fig1, ax1 = plt.subplots(figsize=(10,8))
for t in ('A','B','C'):
ax1.scatter(ds[ds['Label']==t]['factor2'], ds[ds['Label']==t]['factor1'],
color=colors[t],
label=t,
s=size,
alpha=0.7)
for label, x, y in zip(ds['Year'], ds['factor2'], ds['factor1']):
ax1.annotate(label, xy = (x + 0.008, y - 0.003),fontsize = 15)
ax1.legend(markerscale=0.2)
会给你一个带标签的图例。这就是您要找的吗?
关于python - Pandas/Matplotlib 在一列上进行注释并在另一列上添加标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20328952/
我正在处理一组标记为 160 个组的 173k 点。我想通过合并最接近的(到 9 或 10 个组)来减少组/集群的数量。我搜索过 sklearn 或类似的库,但没有成功。 我猜它只是通过 knn 聚类
我有一个扁平数字列表,这些数字逻辑上以 3 为一组,其中每个三元组是 (number, __ignored, flag[0 or 1]),例如: [7,56,1, 8,0,0, 2,0,0, 6,1,
我正在使用 pipenv 来管理我的包。我想编写一个 python 脚本来调用另一个使用不同虚拟环境(VE)的 python 脚本。 如何运行使用 VE1 的 python 脚本 1 并调用另一个 p
假设我有一个文件 script.py 位于 path = "foo/bar/script.py"。我正在寻找一种在 Python 中通过函数 execute_script() 从我的主要 Python
这听起来像是谜语或笑话,但实际上我还没有找到这个问题的答案。 问题到底是什么? 我想运行 2 个脚本。在第一个脚本中,我调用另一个脚本,但我希望它们继续并行,而不是在两个单独的线程中。主要是我不希望第
我有一个带有 python 2.5.5 的软件。我想发送一个命令,该命令将在 python 2.7.5 中启动一个脚本,然后继续执行该脚本。 我试过用 #!python2.7.5 和http://re
我在 python 命令行(使用 python 2.7)中,并尝试运行 Python 脚本。我的操作系统是 Windows 7。我已将我的目录设置为包含我所有脚本的文件夹,使用: os.chdir("
剧透:部分解决(见最后)。 以下是使用 Python 嵌入的代码示例: #include int main(int argc, char** argv) { Py_SetPythonHome
假设我有以下列表,对应于及时的股票价格: prices = [1, 3, 7, 10, 9, 8, 5, 3, 6, 8, 12, 9, 6, 10, 13, 8, 4, 11] 我想确定以下总体上最
所以我试图在选择某个单选按钮时更改此框架的背景。 我的框架位于一个类中,并且单选按钮的功能位于该类之外。 (这样我就可以在所有其他框架上调用它们。) 问题是每当我选择单选按钮时都会出现以下错误: co
我正在尝试将字符串与 python 中的正则表达式进行比较,如下所示, #!/usr/bin/env python3 import re str1 = "Expecting property name
考虑以下原型(prototype) Boost.Python 模块,该模块从单独的 C++ 头文件中引入类“D”。 /* file: a/b.cpp */ BOOST_PYTHON_MODULE(c)
如何编写一个程序来“识别函数调用的行号?” python 检查模块提供了定位行号的选项,但是, def di(): return inspect.currentframe().f_back.f_l
我已经使用 macports 安装了 Python 2.7,并且由于我的 $PATH 变量,这就是我输入 $ python 时得到的变量。然而,virtualenv 默认使用 Python 2.6,除
我只想问如何加快 python 上的 re.search 速度。 我有一个很长的字符串行,长度为 176861(即带有一些符号的字母数字字符),我使用此函数测试了该行以进行研究: def getExe
list1= [u'%app%%General%%Council%', u'%people%', u'%people%%Regional%%Council%%Mandate%', u'%ppp%%Ge
这个问题在这里已经有了答案: Is it Pythonic to use list comprehensions for just side effects? (7 个答案) 关闭 4 个月前。 告
我想用 Python 将两个列表组合成一个列表,方法如下: a = [1,1,1,2,2,2,3,3,3,3] b= ["Sun", "is", "bright", "June","and" ,"Ju
我正在运行带有最新 Boost 发行版 (1.55.0) 的 Mac OS X 10.8.4 (Darwin 12.4.0)。我正在按照说明 here构建包含在我的发行版中的教程 Boost-Pyth
学习 Python,我正在尝试制作一个没有任何第 3 方库的网络抓取工具,这样过程对我来说并没有简化,而且我知道我在做什么。我浏览了一些在线资源,但所有这些都让我对某些事情感到困惑。 html 看起来
我是一名优秀的程序员,十分优秀!