2017-04-26 4 views
0

Ich habe einen Datenrahmen wie folgt:Plotten ein Streudiagramm von einem Datenrahmen

Metal     Cost per m^3/$  volume/mm^3 
0 Cast Iron    5996.0    20088.253323 
1 Medium Carbon Steel  4301.0    12636.050310 
2 Alloy Steel    6490.6    9134.975311 
3 Stainless Steels  34621.0   29216.210066 
8 Titanium Alloys   76500.0   16303.954297 

ich die Kosten vs das Volumen plotten bin zu wollen. Wie würde ich jeden Punkt mit einer anderen Farbe darstellen und die Metallspalte als Legende verwenden?

+0

bitte die [Annahme] (http://meta.stackexchange.com/a/5235)/upvoting eine Antwort, wenn es hilfreich ist - es wird auch zeigen, dass Ihre Frage beantwortet wurde – MaxU

+1

Und bitte beim nächsten Mal fragen, bieten einige Beispieldaten mit dem Code, ich brauchte 5 Minuten, um den Datenrahmen und 2 Minuten zu reproduzieren, um die Antwort zu schreiben. – ImportanceOfBeingErnest

Antwort

2

Sie können über die Zeilen des Datenrahmens iterieren und pyplot.scatter verwenden, um die Punkte zu zeichnen.

import pandas as pd 
import matplotlib.pyplot as plt 

a = ["Cast Iron", "Medium Carbon Steel", "Alloy Steel", 
    "Stainless Steels", "Titanium Alloys"] 
b = [5996,4301, 6490,34621,76500] 
c = [ 20088.253323, 12636.050310, 9134.975311, 29216.210066,16303.954297] 

df = pd.DataFrame({"Metal":a, "cost":b, "volume":c}) 

for row in df.iterrows(): 
    plt.scatter(row[1]["cost"], row[1]["volume"], 
       c=plt.cm.jet(row[0]/float(len(df))), label=row[1]["Metal"]) 

plt.legend() 
plt.show() 

enter image description here

Verwandte Themen