我们可以在matplotlib中将一行的特定列与同一行的另一列进行绘制

时间:2017-02-16 20:14:23

标签: python matplotlib plot

我正在使用python绘制我的数据集。我希望将一行的特定列绘制在同一行的另一列上。确切地说,我希望我的两列是x轴和y轴,然后绘制用户输入的特定值,以便在该图上绘制。

import matplotlib.pyplot as plt
import pandas
import numpy as np

filename = 'friuts.csv'
raw_data = open(filename, 'rb')
data = pandas.read_csv(raw_data)
mydata = pandas.DataFrame(np.random.randn(10,2), columns=['col1','col2'])
mydata.hist()
plt.show()

我的数据集包含水果名称及其权重在两个不同列中的列。这两个权重可以作为x和y轴。但是,我一次只想要一行单行图。 我尝试过的是获取所有行的整列。

2 个答案:

答案 0 :(得分:0)

这是你在找什么? http://matplotlib.org/examples/shapes_and_collections/scatter_demo.html

plt.scatter(mydata.col1, mydata.col2)
plt.show()

答案 1 :(得分:0)

假设您想要使用给定行中的信息绘制单个点:

  1. 使用水果名称选择行,这将返回pd.Series
  2. 在结果
  3. 上调用方法图

    例如:

    import pandas as pd
    import matplotlib.pyplot as plt
    
    # Create the data frame
    mydata = pd.DataFrame({
    'name': ['banana', 'mango', 'lima', 'apple'],
    'weight': [1, 2, 3, 4]})
    
    # Select the fruit you want to plot. This will return a pd.Series
    # including the colums 'name' and 'weight'
    to_plot = mydata[mydata['name'] == 'banana']
    
    # Call the plot function indicating the which column X and Y axis.
    fig, ax = plt.subplots()
    to_plot.plot(x='name', y='weight', marker='o', ax=ax)
    ax.set_ylabel('Weight')