上一篇博客简单介绍了一下Matplotlib的图表窗口和图表基本元素,这一篇着重写一下Matplotlib图表的样式参数
(1)linestyle参数
linestyle是选择线型,即虚线还是直线等,它的参数有以下四个:
# '-' solid line style
# '--' dashed line style
# '-.' dash-dot line style
# ':' dotted line style
我们来看一个具体的例子,画一个虚线图
plt.plot([i**2 for i in range(100)],
linestyle = '-.')
输出结果:
(2)marker参数
marker参数是选择点的形状,这个参数非常非常多,以下:
# '.' point marker
# ',' pixel marker
# 'o' circle marker
# 'v' triangle_down marker
# '^' triangle_up marker
# '<' triangle_left marker
# '>' triangle_right marker
# '1' tri_down marker
# '2' tri_up marker
# '3' tri_left marker
# '4' tri_right marker
# 's' square marker
# 'p' pentagon marker
# '*' star marker
# 'h' hexagon1 marker
# 'H' hexagon2 marker
# '+' plus marker
# 'x' x marker
# 'D' diamond marker
# 'd' thin_diamond marker
# '|' vline marker
# '_' hline marker
来看一个具体的实例:
s = pd.Series(np.random.randn(100).cumsum())
s.plot(linestyle = '--',
marker = '.')
输出结果:
(3)color参数
color参数即是选择颜色,主要是从colormap颜色版中选择,包括以下:
# Accent, Accent_r, Blues, Blues_r, BrBG, BrBG_r, BuGn, BuGn_r, BuPu, BuPu_r, CMRmap, CMRmap_r, Dark2, Dark2_r, GnBu, GnBu_r, Greens, Greens_r,
# Greys, Greys_r, OrRd, OrRd_r, Oranges, Oranges_r, PRGn, PRGn_r, Paired, Paired_r, Pastel1, Pastel1_r, Pastel2, Pastel2_r, PiYG, PiYG_r,
# PuBu, PuBuGn, PuBuGn_r, PuBu_r, PuOr, PuOr_r, PuRd, PuRd_r, Purples, Purples_r, RdBu, RdBu_r, RdGy, RdGy_r, RdPu, RdPu_r, RdYlBu, RdYlBu_r,
# RdYlGn, RdYlGn_r, Reds, Reds_r, Set1, Set1_r, Set2, Set2_r, Set3, Set3_r, Spectral, Spectral_r, Wistia, Wistia_r, YlGn, YlGnBu, YlGnBu_r,
# YlGn_r, YlOrBr, YlOrBr_r, YlOrRd, YlOrRd_r, afmhot, afmhot_r, autumn, autumn_r, binary, binary_r, bone, bone_r, brg, brg_r, bwr, bwr_r,
# cool, cool_r, coolwarm, coolwarm_r, copper, copper_r, cubehelix, cubehelix_r, flag, flag_r, gist_earth, gist_earth_r, gist_gray, gist_gray_r,
# gist_heat, gist_heat_r, gist_ncar, gist_ncar_r, gist_rainbow, gist_rainbow_r, gist_stern, gist_stern_r, gist_yarg, gist_yarg_r, gnuplot,
# gnuplot2, gnuplot2_r, gnuplot_r, gray, gray_r, hot, hot_r, hsv, hsv_r, inferno, inferno_r, jet, jet_r, magma, magma_r, nipy_spectral,
# nipy_spectral_r, ocean, ocean_r, pink, pink_r, plasma, plasma_r, prism, prism_r, rainbow, rainbow_r, seismic, seismic_r, spectral,
# spectral_r ,spring, spring_r, summer, summer_r, terrain, terrain_r, viridis, viridis_r, winter, winter_r
我们平时常用的包括红色,绿色,黑色,蓝色等,通常以简写的形式来表示:red-r, green-g, black-k, blue-b, yellow-y
来看一个具体的实例
plt.hist(np.random.randn(100),
color = 'g',alpha = 0.8)#alpha为透明度,0-1
输出结果:
再来看一下选择colormap的图表
df = pd.DataFrame(np.random.randn(1000, 4),columns=list('ABCD'))
df = df.cumsum()
df.plot(style = '--.',alpha = 0.8,colormap = 'GnBu')
输出结果:
(4)style参数
style参数是对图表的整体设置,包括linestyle,marker,color
来看一个具体的实例
ts = pd.Series(np.random.randn(1000).cumsum(), index=pd.date_range('1/1/2000', periods=1000))
ts.plot(style = '--g.',grid = True)#grid为添加网格
输出结果:
(5)整体风格样式
设置图表的整体风格需要引入新的模块,一旦选用样式后,所有的图表都会默认为选择该样式,需要重启后才能关掉
import matplotlib.style as psl
print(plt.style.available)#查看样式列表
主要样式:
‘seaborn-ticks’, ‘ggplot’, ‘seaborn-paper’, ‘seaborn-whitegrid’, ‘grayscale’, ‘seaborn-deep’, ‘seaborn-poster’, ‘seaborn-talk’, ‘seaborn-muted’, ‘seaborn-white’, ‘seaborn-colorblind’, ‘seaborn-darkgrid’, ‘seaborn-dark’, ‘fivethirtyeight’, ‘bmh’, ‘dark_background’, ‘seaborn-bright’, ‘seaborn-pastel’, ‘classic’, ‘seaborn-notebook’, ‘seaborn-dark-palette’
来看一个具体实例
psl.use('ggplot')
ts = pd.Series(np.random.randn(1000).cumsum(), index=pd.date_range('1/1/2000', periods=1000))
ts.plot(style = '--g.',grid = True,figsize=(10,6))
输出结果:
(6)设置图表刻度
我们可以自己设置图表的刻度,需要引入新的模块
from matplotlib.ticker import MultipleLocator, FormatStrFormatter
t = np.arange(0.0, 100.0, 1)
s = np.sin(0.1*np.pi*t)*np.exp(-t*0.01)
ax = plt.subplot(111) #注意:一般都在ax中设置,不再plot中设置
plt.plot(t,s,'--*')
plt.grid(True, linestyle = "--",color = "gray", linewidth = "0.5",axis = 'both')
# 网格
还有一些比较基础但不是很常用的设置方法
xmajorLocator = MultipleLocator(10) # 将x主刻度标签设置为10的倍数
xmajorFormatter = FormatStrFormatter('%.0f') # 设置x轴标签文本的格式
xminorLocator = MultipleLocator(5) # 将x轴次刻度标签设置为5的倍数
ymajorLocator = MultipleLocator(0.5) # 将y轴主刻度标签设置为0.5的倍数
ymajorFormatter = FormatStrFormatter('%.1f') # 设置y轴标签文本的格式
yminorLocator = MultipleLocator(0.1) # 将此y轴次刻度标签设置为0.1的倍数
ax.xaxis.set_major_locator(xmajorLocator) # 设置x轴主刻度
ax.xaxis.set_major_formatter(xmajorFormatter) # 设置x轴标签文本格式
ax.xaxis.set_minor_locator(xminorLocator) # 设置x轴次刻度
ax.yaxis.set_major_locator(ymajorLocator) # 设置y轴主刻度
ax.yaxis.set_major_formatter(ymajorFormatter) # 设置y轴标签文本格式
ax.yaxis.set_minor_locator(yminorLocator) # 设置y轴次刻度
ax.xaxis.grid(True, which='both') #x坐标轴的网格使用主刻度
ax.yaxis.grid(True, which='minor') #y坐标轴的网格使用次刻度
输出结果:
(7)注解
可以对图标上的某个点添加注解
df = pd.DataFrame(np.random.randn(10,2))
df.plot(style = '--o')
plt.text(5,0.5,'hahaha',fontsize=10)
注解 → 横坐标,纵坐标,注解字符串,注解字大小
输出结果:
(8)图表输出
可以选择图表输出的文件位置和格式,一般这种方法不是很常用,保存图标直接右击即可
df = pd.DataFrame(np.random.randn(1000, 4), columns=list('ABCD'))
df = df.cumsum()
df.plot(style = '--.',alpha = 0.5)
plt.legend(loc = 'upper left')
plt.savefig('C:/Users/XXX/Desktop/pic.png',
dpi=400,#分辨率为400
bbox_inches = 'tight',#图表需要保存的部分,设置为tight,尝试剪掉空白部分
facecolor = 'g',
edgecolor = 'b'#图表的背景色,默认为‘w’
)
以上就是一些非常基础的东西,可以看一下
关注欢喜,走向成功~