我正在尝试用Python制作散点图。我认为它会相当简单,但在绘图时会在散点图(x和y值)中理解。
== 我的使命 ==
== 我做了什么? ==
import numpy as np
import pylab as pl
import MySQLdb
import sys
import math
conn = MySQLdb.connect(
host="localhost",
user="root",
passwd="root",
db="myproject")
with conn:
cur = conn.cursor()
#will fetch all recoreds called monoiso field
cur.execute("SELECT monoiso FROM pmass_selectedion")
rows = cur.fetchall()
for row in rows:
#xvalue for monoiso variable and yvalue for range
xvalue = row
yvalue = [600]
# tried this way too but got x and y dimension error
#yvalue = [400,800,1200,1600]
pl.plot(xvalue,yvalue,'ro')
pl.show()
散点图了解(link)
确定!这个情节没有任何意义。
== 问题 ==
新绘图和统计所以请帮帮我
答案 0 :(得分:3)
也许您正在寻找a matplotlib histogram:
import numpy as np
import MySQLdb
import matplotlib.pyplot as plt # This is meant for scripts
# import pylab as pl # This is meant for interactive sessions;
import operator
conn = MySQLdb.connect(
host="localhost",
user="root",
passwd="root",
db="myproject")
with conn:
cur = conn.cursor()
#will fetch all recoreds called monoiso field
cur.execute("SELECT monoiso FROM pmass_selectedion")
rows = cur.fetchall()
monoisos = [row[0] for row in rows]
# Make a histogram of `monoisos` with 50 bins.
n, bins, histpatches = plt.hist(monoisos, 50, facecolor = 'green')
plt.show()
您还可以使用numpy.histogram:
制作直方图/点图momoisos = [row[0] for row in rows]
hist, bin_edges = np.histogram(monoisos, bins = 50)
mid = (bin_edges[1:] + bin_edges[:-1])/2
plt.plot(mid, hist, 'o')
plt.show()
关于pylab的使用:pyplot的docstring说
matplotlib.pylab
将pyplot与numpy结合到一个命名空间中。 这对于交互式工作很方便,但对于编程来说却是如此 建议将名称空间分开。
答案 1 :(得分:2)
对于散点图,您需要相同数量的x和y值。通常在散点图中,其中一个变量是另一个变量的函数,或者至少两者都具有数值。例如,你可以有x值[1,2,3]和y值[4,5,6],那么在二维图上,(1,4)的(x,y)值,(2) ,5)和(3,6)将被绘制。
在你的情况下,在我看来,没有y值,只有x值,你保持y固定。从我看来,我们无法生成这样的散点图。我们需要一个对应于每个x值的y值。您可以尝试将序列号作为y,但在图中可能没有多大意义。