在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周围的括号,去除了每个语句句尾的分号,还去除了表示块的花括号。多出
...