Seite 1 von 1

Matplotlib-Fehler

Verfasst: Dienstag 18. April 2017, 15:36
von sports7
Hallo zusammen,

bei mir kommt folgender Fehler, wenn ich ein Histogramm zeichnen will:

D:\Programme\WinPython-64bit-3.6.0.1Qt5\python-3.6.0.amd64\lib\site-packages\matplotlib\font_manager.py:1297: UserWarning: findfont: Font family ['normal'] not found. Falling back to DejaVu Sans
(prop.get_family(), self.defaultFamily[fontext])). Wie kann ich das beheben? In meinem Histogramm fehlen damit bei den einzelnen Balken die dünne schwarze Berandung (ist schöner für die Unterscheidung der Balken sowie Erkennbarkeit).

Vielen Dank!

Grüße

Re: Matplotlib-Fehler

Verfasst: Dienstag 18. April 2017, 16:00
von BlackJack
@sports7: Das ist eine Warnung und kein Fehler und die Schriftart hat auch nichts mit dem Rahmen von gezeichneten Balken zu tun.

Re: Matplotlib-Fehler

Verfasst: Mittwoch 19. April 2017, 09:47
von sports7
Ok. Woran liegt es dann, dass meine Balken keinen Rahmen besitzen?

VG
sports7

Re: Matplotlib-Fehler

Verfasst: Mittwoch 19. April 2017, 11:27
von BlackJack
@sports7: Keine Ahnung. Wie soll man die Frage denn beantworten können ohne zu wissen was Du genau machst?

Re: Matplotlib-Fehler

Verfasst: Mittwoch 19. April 2017, 11:28
von sports7
Mein Code für das Histogramm sieht folgendermaßen aus:

Code: Alles auswählen

fig = plt.figure()
    ax1 = fig.add_subplot(111)

    histIntra = ax1.hist(intraData, histNumBins, range = [histAxisMin, histAxisMax], label = "Intra distances", facecolor = "b")
    ax1.set_xlabel("Hamming-Distance")
    ax1.set_ylabel("Occurences amount (Intra Data)")
    ax1.set_ylim([0, len(intraData)])
    ax1.tick_params("y", colors = "b")
    ax1.grid()
    x = np.linspace(histAxisMin, histAxisMax, 500)  
    yAx1 = gaussFunc(x, max(histIntra[0]), intraMean, intraStd)
    plt.plot(x, yAx1, color="orange")  
Dabei ergibt sich folgendes Bild:
http://www.bilder-upload.eu/show.php?fi ... 597795.png

Zu sehen sollten aber die Rahmen wie bspw in folgender Abbildung sein:

https://www.google.de/search?q=histogra ... glQ37bQKpM:

Viele Grüße

Re: Matplotlib-Fehler

Verfasst: Mittwoch 19. April 2017, 11:40
von sports7
Oder liegt es an der Warnung wegen dem Font (siehe erster Post)?

Code: Alles auswählen

#Set font size/style for all plots
font = {'family' : 'normal',
        'weight' : 'normal',
        'size'   : 8}

matplotlib.rc('font', **font)

Re: Matplotlib-Fehler

Verfasst: Mittwoch 19. April 2017, 11:58
von __deets__
Na, was passiert denn wenn du das mit dem Font laesst? Ist es dann besser?

Re: Matplotlib-Fehler

Verfasst: Mittwoch 19. April 2017, 12:04
von BlackJack
@sports7: Mal davon abgesehen das Du diese Vermutung ja selbst ganz einfach überprüfen kannst, sieht Deine Grafik ziemlich deutlich nicht nach dem klassichen Stil von Matplotlib aus. Das Grid ist ja zum Beispiel bei Dir als graue, durchgezogene Linien gezeichnet und nicht als schwarze, gepunktete Linie. Warum das so ist, lässt sich an dem gezeigten Quelltext nicht ablesen.

Edit: Okay, der Standard-Stil hat sich anscheinend geändert. Leb damit oder verwende das 'classic' Stylesheet. :-)

Re: Matplotlib-Fehler

Verfasst: Mittwoch 19. April 2017, 12:33
von Sirius3
@sports7: hast Du schon versucht, die Umrandung zu setzen?

Code: Alles auswählen

histIntra = ax1.hist(intraData, histNumBins, range=[histAxisMin, histAxisMax], label="Intra distances", facecolor="b", edgecolor='g', linewidth=1)