从熊猫框架绘图

时间:2018-08-29 12:56:06

标签: python pandas matplotlib

这似乎很简单,但是我做不到。我有一个像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()

我要去哪里错了?

5 个答案:

答案 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"的列。