Last active
July 18, 2022 14:18
-
-
Save jmquintana79/a4e5ee7b4a235f537a1129b47a7c9714 to your computer and use it in GitHub Desktop.
Main features of matplotlib library
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# import modules and tools | |
import matplotlib.pyplot as plt | |
import matplotlib.dates as mdates | |
# SOURCE OF COLOURS: http://matplotlib.org/examples/color/named_colors.html | |
from matplotlib import colors as mcolors | |
lname_colors = mcolors.cnames.keys() | |
# create objects | |
fig, ax = plt.subplots() | |
# | |
fig = plt.figure(figsize=(10,5)) | |
ax = fig.gca() | |
# create axes | |
ax = fig.add_axes([0.1,0.1,0.8,0.8]) | |
# customize markers and lines | |
ax.plot(x, y, color = 'black', marker='o', linestyle='dashed') | |
# plot and set legend | |
ax.scatter(x1,y1,label = "label 1 of legend") | |
ax.scatter(x2,y2,label = "label 2 of legend") | |
ax.legend(loc='best', # 'best', 'upper right','upper left', etc | |
fontsize=9, | |
shadow=True) | |
# SET TEXT LABELS: option 1 | |
for i, txt in enumerate(lname): | |
ax.annotate(txt, (x[i]+0.002,y[i])) | |
# SET TEXT LABELS: option 2 (after a bar chart) | |
for container in ax.containers: | |
# basix | |
ax.bar_label(container) | |
# customized | |
ax.bar_label(container, labels= [f'{v}%' for v in container.datavalues], fontsize = 11) | |
# SET TEXT LABELS: option 3 | |
from matplotlib.font_manager import FontProperties | |
font = FontProperties() | |
font.set_family('sans-serif') # ['serif', 'sans-serif', 'cursive', 'fantasy', 'monospace'] | |
font.set_style('italic') | |
font.set_weight('semibold') #['light', 'normal', 'medium', 'semibold', 'bold', 'heavy', 'black'] | |
font.set_size(28) | |
plt.text(0., 0.90, 'LABEL TO BE WRITTEN', fontproperties=font,color = 'red') | |
# Save the default tick positions, so we can reset them... | |
locs, labels = plt.xticks() | |
# resolution of axis ticks | |
plt.xticks(range(0,22,1),fontsize='small',rotation='vertical' #'horizontal') | |
plt.yticks(range(-20000,50000,2500),fontsize='small',rotation='vertical' #'horizontal') | |
# limits of axes | |
ax.set_xlim([0,22]) | |
ax.set_ylim([-20000,50000]) | |
# format dates in x axis | |
myFmt = mdates.DateFormatter('%a %d,%H:%M' ) | |
ax.xaxis.set_major_formatter(myFmt) | |
plt.xticks(rotation='vertical', fontsize='small') | |
# format general labels in x axis | |
plt.xticks(list_position,fontsize='small',rotation='vertical' #'horizontal') | |
ax.set_xticklabels(list_labels) | |
# format general labels in x axis (without plt object) | |
ax.set_xticks(list_position) | |
ax.set_xticklabels(list_labels, rotation='rotation',fontsize='small') | |
# customize x/y tick labels (without change values) | |
for tick in ax.xaxis.get_major_ticks(): | |
tick.label.set_fontsize(14) | |
tick.label.set_rotation('vertical') | |
# hide x ticks labels | |
plt.tick_params(axis='x',which='both',bottom='off',top='off',labelbottom='off') | |
# set title | |
plt.title("title") | |
ax.set_title("title") | |
# titles in japanese (for Ubuntu) | |
from matplotlib.font_manager import FontProperties | |
from matplotlib import rcParams | |
font_path = '/usr/share/fonts/truetype/takao-gothic/TakaoPGothic.ttf' | |
font_prop = FontProperties(fname=font_path) | |
rcParams['font.family'] = font_prop.get_name() | |
ax.set_title(u'秋田 天秤野発電所',fontsize=20) | |
# set subtitle | |
fig.suptitle("subtitle") | |
# axes labels | |
plt.xlabel("lable x") | |
plt.ylabel("lable y") | |
ax.set_xlabel("lable x") | |
ax.set_ylabel("lable y") | |
# plot grid axis | |
ax.xaxis.grid(True) | |
ax.yaxis.grid(True) | |
# adjust space of chart | |
plt.subplots_adjust(bottom=0.2) | |
# display chart by screen | |
plt.show() | |
# save chart into output file | |
fig.savefig(path_output,bbox_inches='tight',transparent=False) | |
plt.savefig(path_output,bbox_inches='tight',transparent=False) | |
# close plot | |
plt.cla() # Clear axis | |
plt.clf() # Clear figure | |
plt.close() # Close a figure window | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment