这似乎很简单,但是我做不到。我有一个像http://prntscr.com/ko8lyd这样的熊猫框,现在我想在X轴上绘制一列,在Y轴上绘制另一列。这是我尝试的
import matplotlib.pyplot as plt
x = ATR_7
y = Vysledek
plt.scatter(x,y)
plt.show()
这是我遇到的错误
<ipython-input-116-5ead5868ec87> in <module>()
1 import matplotlib.pyplot as plt
----> 2 x = ATR_7
3 y = Vysledek
4 plt.scatter(x,y)
5 plt.show()
我要去哪里错了?
答案 0 :(得分:1)
您只需要:
df.plot.scatter('ATR_7','Vysledek')
其中df是数据框的名称。无需使用matplotlib。
答案 1 :(得分:0)
您正在尝试使用未定义的变量。 ATR_7
是数据框中的一列名称,世界其他地方都不知道。
尝试类似的东西:
df.plot.scatter(x='ATR_7', y='Vysledek')
假设数据框名称为df
答案 2 :(得分:0)
如果要使用matplotlib,则需要将x和y值设为列表,然后传递给plt.scatter
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import style
style.use('ggplot')
%matplotlib inline
x = list(df['ATR_7']) # set x axis by creating a list
y = list(df['Vysledek']) # set y axis by creating a list
plt.scatter(x,y)
答案 3 :(得分:0)
似乎您的代码中有两个问题。首先,列的名称没有用引号引起来,因此python无法知道它们是字符串(列名是字符串)。其次,使用pandas绘制变量的最简单方法是使用pandas函数。您正在尝试使用matplotlib(以数组作为输入,而不仅仅是列名作为输入)来绘制散点图。
首先,让我们加载模块并创建数据
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
d = {'ATR_7' : pd.Series([1., 2., 3.], index=['a', 'b', 'c']),
'Vysledek' : pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
然后,您可以像
一样使用熊猫绘图x = 'ATR_7'
y = 'Vysledek'
df.plot.scatter(x,y)
或者像普通的matplotlib绘图一样
x = df['ATR_7']
y = df['Vysledek']
plt.scatter(x,y)
答案 4 :(得分:0)
Scatter不知道要使用哪些数据。您需要为其提供数据。
x = "ATR_7"
y = "Vysledek"
plt.scatter(x,y, data=df)
假设df
是您的数据帧,并且具有名为"ATR_7"
和"Vysledek"
的列。