2017-02-16 7 views
0

Ich verwende Python, um meine Daten zu plotten. Ich möchte, dass eine bestimmte Spalte einer Zeile gegen eine andere Spalte derselben Zeile geplottet wird. Um genau zu sein, möchte ich, dass meine zwei Spalten die x-Achse und die y-Achse sind, und dann einen bestimmten Wert grafisch darstellen, der vom Benutzer eingegeben wurde, um in diesem Diagramm geplottet zu werden.Können wir eine bestimmte Spalte einer Zeile gegen eine andere Spalte derselben Zeile in Matplotlib plotten

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() 

Mein Datensatz enthält eine Spalte mit dem Namen der Frucht und ihre Gewichtung in zwei verschiedenen Spalten. Können diese zwei Gewichte als x- und y-Achse genommen werden? Aber ich möchte nur ein Diagramm von einzelnen Reihen gleichzeitig. Was ich versucht habe, ist die gesamte Spalten aller Zeilen zu nehmen.

+1

Können Sie etwas besser erklären, was Sie wollen? IE willst du ein Liniendiagramm? Ein Streudiagramm? Was ist eine einzelne Zeile "Grafik"? – mcpeterson

+0

Können Sie versuchen und neu formulieren, was Sie wollen? Versuchen Sie, eine Spalte gegen eine andere zu plotten? – miradulo

+0

die Sache ist, lassen Sie uns sagen, Sie haben eine Frucht nennen es Apfel, aber verschiedene Äpfel werden unterschiedliche Gewichte nach der Qualität haben. also möchte ich das gewicht auf der x-achse und irgendeinen anderen wert auf der y-achse und dann nehme ich eine benutzereingabe von jedem gewicht. Daher möchte ich, dass der Benutzereingabewert in einem Streudiagramm dargestellt wird, um zu visualisieren, ob dieses Gewicht im Bereich von Gewichten liegt oder nicht. Ähnlich habe ich verschiedene Früchte in der Datenbank und der Benutzer wird Obstname und sein Gewicht eingeben und entsprechend wird mein Programm diese bestimmte Reihe nehmen und ein Punktdiagramm zeichnen @mcpeterson –

Antwort

0

Ist das wonach Sie suchen? http://matplotlib.org/examples/shapes_and_collections/scatter_demo.html

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

It angegeben wird die gesamte Spalte übernehmen. Was ist, wenn ich nur einen einzigen Wert haben möchte? Sagen wir, du hast min. und max. Wert und Sie generieren zufällige Werte zwischen ihnen und dann plotten, um dem Benutzer anzuzeigen, dass ihr Wert im Bereich liegt oder nicht. Ich weiß, dass dies mit einer einfachen if-Anweisung gemacht werden kann, aber ich möchte es visualisieren. –

0

Unter der Annahme, dass Sie einen einzigen Punkt mit der Information in einer bestimmten Zeile darstellen möchten:

  1. Wählen Sie die Zeile mit der Frucht Namen, wird dies ein pd.Series Rückkehr
  2. Invoke das Verfahren Grundstück über das Ergebnis

Zum Beispiel:

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') 
Verwandte Themen