Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫按索引绘制数据帧,它是如何工作的?_Python_Python 2.7_Pandas_Matplotlib_Dataframe - Fatal编程技术网

Python 熊猫按索引绘制数据帧,它是如何工作的?

Python 熊猫按索引绘制数据帧,它是如何工作的?,python,python-2.7,pandas,matplotlib,dataframe,Python,Python 2.7,Pandas,Matplotlib,Dataframe,鉴于数据: Column1; Column2; Column3 1; 4; 6 2; 2; 6 3; 3; 8 4; 1; 1 5; 4; 2 通过以下代码,我得到以下图形: import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv('test0.csv',delimiter='; ', engine='python') df.plot(0,0) plt.savefig('fig0.png') import pa

鉴于数据:

Column1; Column2; Column3
1; 4; 6
2; 2; 6
3; 3; 8
4; 1; 1
5; 4; 2
通过以下代码,我得到以下图形:

import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('test0.csv',delimiter='; ', engine='python')
df.plot(0,0)
plt.savefig('fig0.png')
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('test0.csv',delimiter='; ', engine='python')
df.plot(0,1)
plt.savefig('fig1.png')

通过以下代码,我得到了以下图形:

import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('test0.csv',delimiter='; ', engine='python')
df.plot(0,0)
plt.savefig('fig0.png')
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('test0.csv',delimiter='; ', engine='python')
df.plot(0,1)
plt.savefig('fig1.png')


df.plot(m,n)中的逻辑是什么?假设我想绘制
Column2 X Column3
什么是
m
n
df.plot(2,3)

当您按顺序位置指定
x
y
时,您将在调用
df.plot(x,y)
时到达:

这将
x
从序数值(例如0)转换为列标签名称(例如
'Column1'
)。 请注意,
data.set\u index(x)
被调用。因此,如果
x
等于0,则将第一列设置为索引。接下来,当
y
类似地转换为列标签时, 第0列现在是
'Column2'
。因此,
df.plot(0,0)
plots Column2 vs Column1

因此,为了绘制第3列与第2列的对比,您可以使用
df.plot(1,1)
,因为
data.columns[1]
'Column2'
,一旦设置为索引,
data.columns[1]
就是
'Column3'


在注释中,指定列的一种不太容易出错的方法是按标签名。 或者,如果确实要使用序数值,请将它们显式传递给
df.columns

df.plot(x=df.columns[x], y=df.columns[y])

由于
df.columns[x]
df.columns[y]
都是列标签名称,它们的含义不受
set_index
的影响,因此混淆较少。

当您按顺序位置指定
x
y
时,调用
df.plot(x,y)

这将
x
从序数值(例如0)转换为列标签名称(例如
'Column1'
)。 请注意,
data.set\u index(x)
被调用。因此,如果
x
等于0,则将第一列设置为索引。接下来,当
y
类似地转换为列标签时, 第0列现在是
'Column2'
。因此,
df.plot(0,0)
plots Column2 vs Column1

因此,为了绘制第3列与第2列的对比,您可以使用
df.plot(1,1)
,因为
data.columns[1]
'Column2'
,一旦设置为索引,
data.columns[1]
就是
'Column3'


在注释中,指定列的一种不太容易出错的方法是按标签名。 或者,如果确实要使用序数值,请将它们显式传递给
df.columns

df.plot(x=df.columns[x], y=df.columns[y])

由于
df.columns[x]
df.columns[y]
是列标签名称,它们的含义不受
set\u index
的影响,因此混淆较少。

在查找
y
之前,从数据框中删除用作
x
的任何列。(或者,更严格地说,
x
被设置为索引,这意味着它不再可用作列。)因此,如果您使用
.plot(x=0,y=0)
,则
x=0
意味着“使用第一个位置列,
y=0
意味着“在删除x列后使用第一个位置列”


不用说,这可能会让人感到困惑,因为
y
位置的移动取决于它是在
x
之前还是之后。因此,如果你做
.plot(x=3,y=1)
,那么y实际上是列1,但是如果你做
.plot(x=0,y=1)
,那么y实际上是列2(在列0被删除后它成为数字1)。

y
被查找之前,作为
x
的任何列都会从数据框中删除。(或者,更严格地说,
x
被设置为索引,这意味着它不再可用作列。)因此,如果您使用
.plot(x=0,y=0)
,则
x=0
意味着“使用第一个位置列,
y=0
意味着“在删除x列后使用第一个位置列”

不用说,这可能会让人感到困惑,因为
y
位置的移动取决于它是在
x
之前还是之后。因此,如果你做
.plot(x=3,y=1)
,那么y实际上是第1列,但是如果你做
.plot(x=0,y=1)
,那么y实际上是第2列(在第0列被移除后它变成了第1列)。

根据,你可以像这样定义m和n(在文档中的x和y):

df.plot(df.columns[1],df.columns[2])
  • “m”应该是->
    df.columns[1]
    ,即位置1的列名
  • “n”应该是->
    df.columns[2]
    ,即位置2的列名
如果您想使用这些位置,可以是:

df.plot(1,1)
使用position的逻辑是:当我们将1放入横轴时,该列将从纵轴的选项中删除,因此只有两个选项可用(具有新索引)。这就是为什么
df.plot(0,0)
实际上将第一列和下一列设置为数据,而
df.plot(1,1)
使用第二列和最后一列。我没有在文档中找到它,而是在测试中发现的

我认为这个想法是:在x轴和y轴上绘制相同的列没有意义,因此给出的第一列对于另一个轴不可用。我希望它能有所帮助!=)

PS:它将以奇怪的缩放和位置进行打印,但是如果您缩小并在打印中移动,您将确认值与每列的数据匹配,根据,您可以定义m和n(文档中的x和y),如下所示:

df.plot(df.columns[1],df.columns[2])
  • “m”应该是->
    df.columns[1]
    ,即位置1的列名
  • “n”应该是->
    df.columns[2]
    ,即位置2的列名
如果您想使用这些位置,可以是:

df.plot(1,1)
使用position的逻辑是:当我们将1放入横轴时,该列将从纵轴的选项中删除,因此只有两个选项可用(具有新索引)。这就是为什么
df.plo