matplotlib Phyton:经Pandas过滤的csv中的图形未显示图形

idfiyjo8  于 2022-12-27  发布在  其他
关注(0)|答案(1)|浏览(132)

我想创建一个图表过滤数据从csv。一个图表创建,但没有内容。
下面是代码和结果:

# var 4 graph
xs = []
ys = []

name = "Anna"
gender = "F"
state = "CA"

# 4 reading csv file
import pandas as pd

# reading csv file
dataFrame = pd.read_csv("../Kursmaterialien/data/names.csv")
#print("DataFrame...\n",dataFrame)

# select rows containing text 
dataFrame = dataFrame[(dataFrame['Name'] == name)&dataFrame['State'].str.contains(state)&dataFrame['Gender'].str.contains(gender)]
#print("\nFetching rows with text ...\n",dataFrame)

print(dataFrame)

# append var with value
xs.append(list(dataFrame['Year']))
ys.append(list(dataFrame['Count']))
#xs.append(list(map(str,dataFrame['Year'])))
#ys.append(list(map(str,dataFrame['Count'])))

print(xs)
print(ys)

Result from print(xs) and print(ys)

%matplotlib inline
import matplotlib.pyplot as plt
plt.plot(xs,ys)
plt.show()

Resulting plot
我看到变量以两个括号开头,但不知道这是否是问题所在以及如何解决它。
图形外观应为something like this

6mzjoqzu

6mzjoqzu1#

您对两个括号的判断是正确的,您必须从内括号中提取数据,这可以通过将indice设置为0来获取第一列(也是唯一的一列)。
这应该行得通:

XS=xs[0]
YS=ys[0]
plt.plot(XS,YS)
plt.show()

使用您的双括号,plt. plot将每对点绘制为不同的元素。绘制点不会绘制线,因为默认情况下标记是关闭的。如果您尝试向绘图添加标记,您将看到不同颜色的标记,但不会看到线。

plt.plot(xs,ys,'o') #round marker

相关问题