用matplotlib绘制点

时间:2018-06-21 09:40:37

标签: python matplotlib

我有

形式的要点列表
points=[(x1,y1),...(xn,yn)...]

我正在寻找一种将列表转换成

的Python方法
 x=[x1,...xn] y=[y1,...yn]

一种方法是

x = map (lambda x: x[1],points)

但是,也许还有一种更Python的方法可以直接从上述“点”中进行绘制?

2 个答案:

答案 0 :(得分:4)

您可以执行以下操作:

x = []
y = []
for point in points:
   x.append(point[0])
   y.append(point[1])

或:

x,y = [i[0] for i in points],  [i[1] for i in points]

但是最好的方法是使用zip

x,y = zip(*points)

zipmap更好,并且更快,您应该使用lambda在map中定义一个函数。所以我认为最好的方法是使用zip

答案 1 :(得分:1)

除了mehrdad-pedramfar答案:

如果使用numpy没问题,您可以将元组列表转换为numpy数组,然后仅使用索引。

create function get_ddl( i_owner in varchar2, i_name in varchar2, i_type in varchar2)
    return clob
is
begin
    dbms_output.put_line('Listing active session roles...');
    for r_role in (select role from sys.session_roles) loop
        dbms_output.put_line('Role : '||r_role.role);
    end loop;
    dbms_output.put_line('Roles listed');
    dbms_output.put_line('Userid is : '||sys_context('userenv', 'current_userid'));
    return dbms_metadata.get_ddl( schema => i_owner, name => i_name, object_type => i_type);
end;

给出所有x个值的numpy数组:

import numpy as np

short_example = np.array([(1,2),(2,4),(4,6)])
short_example[:,0]

给出一个所有y值的numpy数组:

array([1, 2, 4])

short_example[:,1]