python如何生成坐标列表_在python matplotlib中绘制(x,y)坐标列表(Plotting a list of (x, y) coordinates in python matplo...

在python matplotlib中绘制(x,y)坐标列表(Plotting a list of (x, y) coordinates in python matplotlib)

我有一个对(a, b)的列表,我想用python中的matplotlib作为实际的xy坐标绘制。 目前,它正在制作两个绘图,其中列表的索引给出x坐标,第一个图的y值是成对的a s,第二个图的y值是成对的b 。

为了澄清,我的数据如下所示: li = [(a,b), (c,d), ... , (t, u)]我想做一个只需调用plt.plot()不正确。 如果我不需要一个单行我可以简单地做:

xs = [x[0] for x in li]

ys = [x[1] for x in li]

plt.plot(xs, ys)

如何将matplotlib绘制为xy坐标?

感谢所有的帮助!

I have a list of pairs (a, b) that I would like to plot with matplotlib in python as actual x-y coordinates. Currently, it is making two plots, where the index of the list gives the x-coordinate, and the first plot's y values are the as in the pairs and the second plot's y values are the bs in the pairs.

To clarify, my data looks like this: li = [(a,b), (c,d), ... , (t, u)] I want to do a one-liner that just calls plt.plot() incorrect. If I didn't require a one-liner I could trivially do:

xs = [x[0] for x in li]

ys = [x[1] for x in li]

plt.plot(xs, ys)

How can I get matplotlib to plot these pairs as x-y coordinates?

Thanks for all the help!

原文:https://stackoverflow.com/questions/21519203

2019-11-19 06:46

满意答案

按照这个例子 :

import numpy as np

import matplotlib.pyplot as plt

N = 50

x = np.random.rand(N)

y = np.random.rand(N)

plt.scatter(x, y)

plt.show()

将产生:

将数据从包中解包成列表使用zip :

x, y = zip(*li)

所以,一线:

plt.scatter(*zip(*li))

import numpy as np

import matplotlib.pyplot as plt

N = 50

x = np.random.rand(N)

y = np.random.rand(N)

plt.scatter(x, y)

plt.show()

will produce:

To unpack your data from pairs into lists use zip:

x, y = zip(*li)

So, the one-liner:

plt.scatter(*zip(*li))

2014-02-03

相关问答

正如@KyssTao一直在说的, help(dates.num2date)表示x必须是一个浮点数,给出0001-01-01以后的天数加上1。 因此, 19910102不是1991年1月2日,因为如果你从0001-01-01算起19910101天,你会得到54513年或类似年份(除以365.25,一年中的天数)。 改为使用datestr2num (请参阅help(dates.datestr2num) ): new_x = dates.datestr2num(date) # where date is...

正如ImportanceOfBeingErnest所述,您需要确保您的值是数字,而不是字符串。 这是一种制作你的情节的方法,它既能确保它是数字的,又有不同的迭代过程,在这种过程中你不会逐个给你的情节添加点: x_vals,y_vals = zip(*[(float(i.x),float(i.y)) for i in list_of_points])

plt.scatter(x_vals,y_vals)

plt.show()

(我冒昧地将你的list重新命名为list_of_points ,因为...

按照这个例子 : import numpy as np

import matplotlib.pyplot as plt

N = 50

x = np.random.rand(N)

y = np.random.rand(N)

plt.scatter(x, y)

plt.show()

将产生: 将数据从包中解包成列表使用zip : x, y = zip(*li)

所以,一线: plt.scatter(*zip(*li))

As per this example: import numpy as...

您可以使用plt.xticks显式设置您想要标记的plt.xticks : plt.xticks(np.arange(min(x), max(x)+1, 1.0))

例如, import numpy as np

import matplotlib.pyplot as plt

x = [0,5,9,10,15]

y = [0,1,2,3,4]

plt.plot(x,y)

plt.xticks(np.arange(min(x), max(x)+1, 1.0))

plt.show()

(使用np....

我建议创建三个相同长度的不同列表,而不是创建元组。 然后你可以使用numpy.histogram2d : import numpy as np

import matplotlib.pyplot as plt

# here are the three lists

# for example, you could do random values to demo

x = np.random.randn(8873)

y = np.random.randn(8873)

weights = np.rand...

我不确定这是否是您正在寻找的东西,但无论如何它在这里: import pylab as py

x = py.linspace(0,10)

y = py.sin(x)

c = 2.0

# First plot

ax1 = py.subplot(111)

ax1.plot(x,y , "k")

ax1.set_xlabel("x")

# Second plot

ax2 = ax1.twiny()

ax2.plot(x / c, y, "--r")

ax2.set_xlabel("x'", colo...

如果你运行Python 2.7或更高版本,你可以使用OrderedDict作为过滤器: from collections import OrderedDict

tmp = OrderedDict()

for point in zip(x, y, z):

tmp.setdefault(point[:2], point)

mypoints = tmp.values()

除了过滤之外,这也保留了随机序列的顺序。 可以在Python文档中找到另一个收件人,可以将其翻译为以下内容: from ...

我意识到这并不难,但这里是用于计算x,y坐标的质心的代码: >>> c = [[1,4,-5],[3,-2,9]] # of the form [[x1,x2,x3],[y1,y2,y3]]

>>> centroide = (sum(c[0])/len(c[0]),sum(c[1])/len(c[1]))

>>> centroide

(0, 3)

I realized that it was not that hard, but here is the code...

pyplot只是按照您提供数据的顺序绘图。 事实证明, x没有排序,所以情节有点“向后”。 然后,您应该对索引(及其相应的值)进行排序以获得您想要的内容: #Sort by date (x) and apply change to values (y)

xx, yy = zip(*sorted(zip(x, y)))

plt.plot_date(xx, yy, fmt='b-')

给你以下情节: pltrdy 奖金问题:请看这里的pyplot日期刻度格式。 它可能很容易理解并做你想做的事情。 ...

igraph仅支持整数或字符串作为顶点ID。 如果需要存储与顶点相关的任何其他数据,则必须将其存储为顶点属性。 例如: >>> g = Graph(3)

>>> g.vs[0]["coordinates"] = (1, 2)

>>> g.vs[1]["coordinates"] = (3, 4)

这将(1, 2)分配给顶点0的"coordinates"顶点属性,并将(3, 4)分配给顶点1的“坐标”顶点属性。根据您想要实现的目标,最好使用两个单独的顶点属性( x和y ),因为这些属性在绘制图形时...

相关文章

列表就像java里的collection,所具有的特性也要比元组更多,更灵活,其character总结

...

python2和python3的区别,1.性能 Py3.0运行 pystone benchmark的速

...

abs(x) 说明:abs(x)返回x的绝对值,如果参数是复数,则返回复数的模; 参数x:整

...

python里的字典就像java里的HashMap,以键值对的方式存在并操作,其特点如下:通过键来存取

...

Python 编程语言具有很高的灵活性,它支持多种编程方法,包括过程化的、面向对象的和函数式的。但最重

...

Hi Pythonistas! 测试和调试 Testing & Debuggi

...

在python中, 去除了i > 0周围的括号,去除了每个语句句尾的分号,还去除了表示块的花括号。多出

...

你可能感兴趣的:(python如何生成坐标列表)