Udover Pandas og Seaborn vil jeg også gerne give dig en kort introduktion til matplotlib. Matplotlib er et andet vigtigt modul og bibliotek i Python. Det bruges til datavisualisering. Nedenstående kodningseksempel får dig i gang. Den fulde dokumentation om matplotlib er tilgængelig her: https://matplotlib.org/index.html
# importerer matplotlib, matplotlib.pyplot importerer matplotlib importerer matplotlib.pyplot som plt # importerer pandaer og numpy, da vi ønsker at visualisere data gemt i datarammer import pandaer import numpy # importer et datasæt og vis headeren data_df = pandas.read_csv(" oica.csv",sep=","") data_df.head()
år | Land | produktion | |
---|---|---|---|
0 | 2018 | Argentina | 466649 |
1 | 2018 | Østrig | 164900 |
2 | 2018 | Belgien | 308493 |
3 | 2018 | Brasilien | 2879809 |
4 | 2018 | Canada | 2020840 |
# trin 1: skab overfladen, figuren; tillader f.eks. indstilling af størrelsen # figuren er som en side; en figur kan indeholde flere plots, dvs. akser plt.figure(figsize=(10,10))
<Figurstørrelse 720x720 med 0 akser>
<Figurstørrelse 720x720 med 0 akser>
# .subplots() returnerer figuren og akserne; # akserne er de basiskoordinater, som du plotter på; # som nævnt kan en figur indeholde flere akser plt.figure(figsize=(10,10)) plt.subplots()
(<Figurstørrelse 432x288 med 1 akser>, <matplotlib.axes._subplots.AxesSubplot at 0x257b791bb08>)
<Figurstørrelse 720x720 med 0 akser>
# trin 2: plot et punktplot, dvs. spredningsplot; # føj plottet til akseobjektet plt.figure(figsize=(10,10)) plt.plot( numpy .sort(data_df["output "]),marker="o",markersize=2)
[<matplotlib.lines.Line2D at 0x257b6180108>]
# trin 3: tilføje titel og akse etiketter; # -- sæt figurstørrelse plt.figure(figsize=(20,10)) # -- create plot plt.plot( numpy .sort(data_df["output "]), markør="o", markørstørrelse=6, linjebredde =2, linestyle ="--", color="orange") # -- set title plt.title("Tal for bilindustriens årlige produktion", fontdict={"fontname":"Times New Roman", "fontsize" :32}) # -- tildel xlabel plt.xlabel("datapunkt nr.", fontdict={"fontname":"Comic Sans MS", "color":"red"}) plt.ylabel("årligt produktionsoutputtal", fontsize=18, color="green") # -- juster xticks plt.xticks(size=16, color="lilla")
(array([-200., 0., 200., 400., 600., 800., 1000.]), <en liste med 7 tekst xticklabel-objekter>)
# en mere struktureret måde at arbejde med matplotlib på er at arbejde med referencebehandlere # -- opsæt nogle datavektorer, der skal plottes y1 = [1,2,3.3,5.1,7] y2 = [2,4,5,5.5, 5.75] x = range(0,len(y1)) # -- opret et tomt billede (dvs. = figur); capture a handler fig = plt.figure() # fig indikerer, at dette er en "figur" # -- opret et underplot på det tomme billede, ig den tomme figur; capture a handler axe = plt.subplot() # ax indikerer, at dette er en "axes"; akserne er dybest set grafen # -- laver linjeplot på aksen ved hjælp af aksehandlerreference ax.plot(x, y1, label='$y1 = serie 1, vokser hurtigt',color="sort") axe. plot(x, y2, label='$y2 = serie 2, vokser langsomt', # -- tilføjelse af en titel til akserne ved hjælp af ax.set_title('Sammenligning af to tidsserier', fontsize=18, color="grøn") # -- tilføj x- og y-akse-etiketter ved at bruge aksehandlerreference ax.set_xlabel("x-akseværdier", fontsize=14, color="red") ax.set_ylabel("y-akseværdier", fontsize=14, color="lilla") # -- tilføj forklaring, som standard inden for plotrammen ax.legend(fontsize=10) # -- tilføj en grid ax.grid(b=True, color="blue", alpha=0.1) # -- vis alt plottet i dette afsnit indtil dette punkt plt.show()
# lad os nu se på nogle yderligere eksempler; # fx kan vi lave histogrammer ved hjælp af matplotlib # -- import tilfældigt for at skabe nogle tilfældige tal import tilfældigt # -- brug randint() fra tilfældigt for at skabe nogle tilfældige heltal x = [] for i i interval(0,100): x.append( random.randint(a=0,b=100)) # -- opret en figur fig = plt.figure(figsize=(10,10)) # -- føj akser til figur ax = plt.subplot() # -- føj histogram til akser ved hjælp af akseobjektbehandler ax.hist(x, bins=20, histtype="bar", color="pink") # -- tilføj titel til histogram ved hjælp af akseobjektbehandler ax.set_title("et histogram, oprettet med matplotlib i Python", fontsize=22, color="mørkegrønt") # -- tilføj etiketter til x- og y-aksen ved hjælp af akseobjekthåndtering ax.set_xlabel("observationsværdiområde", fontsize=16, color="darkgreen") ax.set_ylabel("absolut frekvens", fontsize=16, color="darkgreen") # -- juster x- og y-afkrydsningsetiketter ved hjælp af akseobjekthåndtering # -- også: juster x og y-aksen tikker selv ved hjælp af akseobjektbehandler ax.tick_params(axis="x", size=12, width=5, color="blå", etiketstørrelse=20,blå", labelcolor="rød") ax.tick_params(axis="y", size=12, width=5, color="blue") # -- vis alt plottet i dette afsnit, indtil dette punkt plt.show()
# endnu et eksempel: 3D overfladeplot med matplotlib i Python # kredit: https://stackoverflow.com/questions/3810865/matplotlib-unknown-projection-3d-error # -- først nogle data til at plotte x = [1,2 ,3] y = [1,2,3] z = [[1,2,3], [1,2,3], [1,2,3]] # -- opret figur ved hjælp af pyplot fig = plt .figure(figsize=(10,10)) # -- oprettelse af akser ved hjælp af pyplot fra mpl_toolkits.mplot3d import axes3d, Axes3D ax = Axes3D(fig) # -- opret overfladeplot ax.contour(x,y,z,extend3d =Sandt)
<matplotlib.contour.QuadContourSet på 0x257b7899f48>
Industriingeniør som gerne beskæftiger sig med optimering, simulation og matematisk modellering i R, SQL, VBA og Python
Leave a Reply