Matplotlib 入门:https://deepinout.com/matplotlib/matplotlib-tutorials/matplotlib-easy-to-start.html
Matplotlib 教程:https://geek-docs.com/matplotlib/matplotlib-tutorial/matplotlib-tutorial.html
matplotlib官方手册:https://matplotlib.org/stable/api/pyplot_summary.html
plottable 绘制精美漂亮的表格:https://blog.csdn.net/m0_59596937/article/details/128857069
plottable: https://plottable.readthedocs.io/en/latest/
Seaborn详细操作之风格设置https://blog.51cto.com/u_15067223/3802729
matplotlib:是最流行的python底层绘图库,主要做数据可视化图表,模仿MATLAB构建。
Figure:是指整个图形,也就是一张画布,包括了所有的元素,如标题,轴线等;
Axes:绘制 2D 图像的实际区域,也称为轴域区,或者绘图区;
Axis:是指图形的水平轴和垂直轴,包括轴的长度、轴的标签和轴的刻度等;
Artist:在画布上看到的所有元素都属于 Artist 对象,比如文本对象(title、xlabel、ylabel)、Line2D 对象(用于绘制2D图像)等。
figure 可以理解为一整张画布,而axes是画布中的一块子图。
import matplotlib.pyplot as plt # 导入绘图模块
from matplotlib import pyplot as plt # 两种导入方法都可
先生成了一个画布figure,然后在这个画布上隐式的生成一个画图区域来进行画图。
fig=plt.figure(num=1,figsize=(4,4))
plt.subplot(111)
plt.plot([1,2,3,4],[1,2,3,4])
plt.show()
先生成一个画布figure,然后在此画布上,选定一个子区域画了一个子图axes。
fig=plt.figure(num=1,figsize=(4,4))
ax=fig.add_subplot(111)
ax.plot([1,2,3,4],[1,2,3,4])
plt.show()
函数 | 说明 |
---|---|
plt.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass= |
创建一个空白画布,并设置其图片大小和分辨率等。【num当给一个数字时,相当于figure的编号(ID),当是字符串时作为figure的名称;figsize指定画布的大小,(宽度,高度),单位为英寸;dpi指定绘图对象的分辨率,即每英寸多少个像素,默认值为80;facecolor背景颜色;edgecolor边框颜色;frameon是否显示边框;】# plt.figure(num=‘panel’, figsize=(3,2),facecolor=‘gray’) 创建一个名为panel的figure,大小是3*2英寸,背景颜色时灰色 |
plt.subplot(nrows, ncols, index, **kwargs) | 当有一个空白画布时, 划分多个子区域进行绘图。【将画布整个区域分为 nrows 行,ncols 列,index 参数将指示当前绘制在第几个区域。区域编号的顺序从上之下,从左至右。前一次的划分是不影响后一次的划分,比如前一次将figure划分为22,不影响下一次将figure划分为21,只需要将子图安置在划分后的空白区域即可。】# plt.subplot(2,1,2) 划分2行1列,第2个子区域。 |
matplotlib.gridspec.GridSpec(nrows, ncols, figure=None, left=None, bottom=None, right=None, top=None, wspace=None, hspace=None, width_ratios=None, height_ratios=None) | 用于指定放置子图的网格的几何形状。必须设置行数和列数,可选地完成子图布局参数的调整。【nrows是网格中的行数(整数)。ncols是网格中的列数(整数)。figure是用于绘制图形的可选参数。left, right, top, bottom是可选参数,用于将子图的范围定义为图形宽度或高度的一部分。wspase是可选的float参数,用于保留子图之间的宽度空间。hspace是可选的float参数,用于保留子图之间的高度空间。width_ratios是可选参数,代表列的宽度比率。height_ratios是可选参数,表示行的宽度比率。】# import matplotlib.gridspec as gridspec #导入模块 gs = gridspec.GridSpec(4, 4) # 指定四行四列 plt.subplot(gs[0, :]) # 第一行的全部列 plt.subplot(gs[1,:-1])#第二行前三列 |
plt.fill_between(x,y,y2=0,where=None,interpolate=False,step=None,*,data=None,**kwargs) | 曲线覆盖。【 x覆盖的区域,一个数组,定义水平轴上的点,直接复制为x表示整个x都覆盖。y覆盖的下限,数组或者标量。y2覆盖的上限,数组或者标量。facecolor覆盖区域的颜色。alpha覆盖区域的透明度[0,1],其值越大,表示越不透明。where如需排除某些垂直区域的填充,则定义该数组,布尔数组,这个定义意味着两个假值之间的一个孤立的真值将不进行填充,相邻的False值将导致不填充True值的两边。interpolate只有在使用了where参数同时两条曲线交叉时才有效,默认情况下被填充的区域将被放在x阵列的位置,定义一个被填充的多边形区域,与x相交的部分被裁剪,接受布尔值。step如填充需一个步骤函数,则使用该参数,接受’pre’、‘post’、'mid’三个值,用于指定步骤将发生的位置。pre代表区间(x[i-1],x[i])的值为y[i],x值向左移动;post代表区间(x[i],x[i+1])的值为y[i],x值向右移动;mid代表步骤发生在x位置的中间。】 |
先是通过gridspec.GridSpec()创建区域,参数5,5的意思就是每行五个,每列五个,最后就是一个5×5的画布,相比于add_subplot(),使用网格布局的话可以更加灵活的控制占用多少空间。
from matplotlib import gridspec
gs = gridspec.GridSpec(5,5)
fig1 = plt.figure()
ax1 = fig1.add_subplot(gs[0:2, 0:2])
ax2 = fig1.add_subplot(gs[3:5, 0:2])
函数 | 说明 |
---|---|
plt.plot(x,y,ls,lw,lable,color) | 绘制直线、曲线图、标记点。【x、y为相同长度的序列数据,ls为线型linestyle,lw为线宽linewidth,lable为标签文本内容,color为颜色,marker=“.”。】 |
plt. scatter(x, y, c, marker, label, color) | 绘制散点图。【x、y为相同长度的序列,c为单个颜色字符或颜色序列,marker为标记的样式,默认的是’o’,label为标签文本内容,color为颜色】 |
plt. bar(x, height, width, bottom) | 绘制条形图【x 代表条形图的x坐标的标量序列。 align控制x是条形图的中心(默认)还是左边缘。height 代表条形图高度的标量或标量序列。width条形图的宽度,可选标量或数组,取值在0~1之间,默认为0.8。bottom 标量或类似数组,可有可无。条形图的Y坐标,默认为无。error_kw用于接收其他可用于显示误差线的关键字参数,eColor参数指定误差线的颜色,capsize参数指定误差线两头横线大的宽度。alpha控制彩色条形图的透明度,取值范围是0-1,0表示完全透明,随alpha的增加,对象逐渐清晰起来,到1时不透明。label为图表中的序列指定名称。】 |
plt. pie(x, explode, labels, autopct, shadow = False, startangle) | 绘制饼图 |
Plt. stem(x, y, linefmt, markerfmt, use_line_collection) | 绘制stem图 |
plt.boxplot() | 绘制箱形图 |
plt.barh() | 绘制横向条形图 |
plt.polar() | 绘制极坐标图 |
plt.psd() | 绘制功率谱密度图 |
plt.specgram() | 绘制谱图 |
plt.cohere() | 绘制相关性函数 |
plt.step() | 绘制步阶图 |
plt.hist(data, bins=40, facecolor=“blue”, edgecolor=“black”, alpha=0.7) | 绘制直方图(柱状图)。是对一个连续变量的概率分布的一种估计,是一种条形图。计算并绘制x的直方图。将数值的范围划分出来,将整个数值范围划分为一系列的区间,计算每个区间内有多少数值,分区通常被指定为一个变量的连续、不重叠的区间。【data绘图数据 。bins直方图的长条形数目 ,整数或序列或’自动’,可选项默认为10。facecolor长条形的颜色 。edgecolor长条形边框的颜色 。alpha透明度 。range分列的下限和上限范围 。density如果是True,返回元组的第一个元素将是归一化的计数,形成一个概率密度cumulative,如果是True将计算一个直方图,每个bin给出该bin的计数,加上所有bins的较小值。histtype要绘制的直方图的类型 ,默认是传统的条形直方图’bar’,如果给出多个数据,则条形图将并排排列;barstacked’条形直方图,其中多个数据被堆叠在彼此的上面;step’生成一个线图,默认情况下是不填充的;stepfilled’生成一个默认为填充的线图。】 |
plt.contour() | 绘制等值图 |
plt.vlines() | 绘制垂直图 |
plt.stem() | 绘制柴火图 |
plt.plot_date() | 绘制数据日期 |
plt.clabel() | 绘制轮廓图 |
plt.hist2d() | 绘制2D直方图 |
plt.quiverkey() | 绘制颤动图 |
plt.stackplot() | 绘制堆积面积图 |
plt.Violinplot() | 绘制小提琴图 |
plt.table(cellText=None, cellColours=None, cellLoc=’right’, colWidths=None,rowLabels=None, rowColours=None, rowLoc=’left’, colLabels=None, colColours=None, colLoc=’center’, loc=’bottom’, bbox=None, edges=’closed’, **kwargs) | 创建表挂在堆叠的条形图下面。【cellText表格单元格文本,字符串中的换行符暂不支持,可能导致文本超出单元格边界,类型为二维字符串列表。cellColours表格单元格背景色,类型为二维颜色值列表。cellLoc表格单元格文本的对齐方式,取值范围为{‘left’, ‘center’, ‘right’},默认值为’right’。colWidths表格单元格宽度,类型为浮点数列表,默认每个单元格的宽度为{子图宽度/ncols}。rowLabels表格行表头文本,类型为字符串列表。rowColours表格行表头背景色,类型为颜色列表。rowLoc表格行表头文本的对齐方式,取值范围为{‘full’, 默认’left’, ‘right’}。colLabels表格列表头文本,类型为字符串列表。 colColours表格列表头背景色,类型为颜色列表。colLoc表格列表头文本的对齐方式,取值范围为{‘full’, 默认’left’, ‘right’}。loc单元格相对于子图的位置,字符串,取值范围为matplotlib.table.Table.codes={‘best’: 0, ‘bottom’: 17, ‘bottom left’: 12, ‘bottom right’: 13, ‘center’: 9, ‘center left’: 5, ‘center right’: 6, ‘left’: 15, ‘lower center’: 7, ‘lower left’: 3, ‘lower right’: 4, ‘right’: 14, ‘top’: 16, ‘top left’: 11, ‘top right’: 10, ‘upper center’: 8, ‘upper left’: 2, ‘upper right’: 1}。bbox绘制表格的边界框,Bbox对象,如果该参数为不None,将会覆盖 loc参数。edges单元格边线,该属性会影响各类单元格背景色,取值为 'BRTL’中字符之一或 {‘open’, ‘closed’, ‘horizontal’, ‘vertical’}。**kwargs:matplotlib.table.Table对象属性。】 |
plt.axvline(y=0, xmin=0, xmax=1, **kwargs) | 画垂直线,轴线上添加竖线。 |
plt.axhline(x=0, ymin=0, ymax=1, **kwargs) | 画水平线。【x放置垂直线在数据坐标中的X位置。ymin竖线在y轴上的起始位置,它将取0到1之间的值,0是轴的底部,1是轴的顶部。ymax竖线在y轴上的结束位置,它将取0到1之间的值,0是轴的底部,1是轴的顶部。**kwargs:用于更改行属性的其他可选参数,如颜色线宽。】 # plt.axhline(1) 画出 y=1 这条水平线 |
比plt.table绘制更精致表格的模块,
plottable
可实现外框样式的更改。
安装:pip install plottable
另外一种绘制图表模块,网页显示。
安装:pip install plotly
函数 | 说明 |
---|---|
plt.title(label, fontdict=None,loc= ‘ center ‘, pad=None,**kwargs) | 在当前图形中添加标题,可以指定标题的名称、位置、颜色、字体大小等参数。【label (str)指向所描述的可视化的实际标题文本字符串。fontdict (dict)使用字典控制文本的外观,如文本大小,文本对齐等。loc (str)指向标题的位置,接受’center’, ‘left’和’right’等字符串值。pad(float)指的是标题从轴的顶端到顶点的偏移量,单位为点,默认值为None。**kwargs指的是使用其他关键字参数作为文本属性,如颜色、fonstyle、行间距、背景色、旋转等。】#plt.title(“Linear graph”)#只有label参数在title()方法中被赋值为“Linear graph”,其他参数被赋值为它们的默认值。 |
plt.xlabel(string) | 在当前图形中添加x轴名称,可以指定位置、颜色、字体大小等参数。 |
plt.ylabel(string) | 在当前图形中添加y轴名称,可以指定位置、颜色、字体大小等参数。 |
plt.xlim(xmin,xmax) | 指定当前图形x轴的范围,只能确定一个数值区间,而无法使用字符串标识。 |
plt.ylim(ymin,ymax) | 指定当前图形y轴的范围,只能确定一个数值区间,而无法使用字符串标识。 |
plt.xticks() | 指定x轴刻度的数目与取值。 |
plt.yticks() | 指定y轴刻度的数目与取值。 |
plt.legend() | 指定当前图形的图例,可以指定图例的大小、位置、标签。【handles需要传入你所画线条的实例对象。labels是图例的名称(能够覆盖在plt.plot( )中label参数值)。Loc属性用于指定图例的位置,Loc的默认值是Loc = ” best “(左上角),或’ upper left ‘, ‘ upper right ‘, ‘ lower left ‘, ‘ lower right ‘将图例放置在坐标轴/图形的相应角落。bbox_to_anchor=(x, y)用于指定图例的坐标,属性ncol表示图例拥有的列数,默认值是1。shadow[None或bool]是否在图例后面画一个阴影,默认值是None。markerscale与最初绘制的图例标记相比,[None或int或float]图例标记的相对大小,默认为None。numpoints[None或int]在为Line2D (line)创建图例条目时,图例中的标记点的数量,默认为None。fontsize图例的字体大小,如果数值是数值,则大小将是绝对字体大小,以点为单位。facecolor[None或“继承”或颜色]传奇的背景色。edgecolor[None或”继承”或颜色]图例的背景补丁边缘颜色。frameon=False删除图例的框。】# leg = plt.legend() 创建图例 # leg.get_frame().set_edgecolor(‘b’) 更改图例框边框的颜色 # leg.get_frame().set_linewidth(0.0) 只删除图例框的边框 # leg.get_frame().set_facecolor(‘none’) 图例背景变为空白即透明 |
plt.grid(b=None, which=‘major’, axis=‘both’, **kwargs) | 网格线样式设置【b表示是否显示网格线。如果这个参数为None,但后面有别的参数,说明想显示网格线,就会自动设置这个参数为True。which表示主刻度的网格线显示’major’,或次刻度的网格线显示‘minor’,或两者都显示 ‘both’。axis设置X轴的网格线显示‘x’,或Y轴的网格线显示‘y’,或两者都显示’both’ 。kwargs表示可以传递给函数Line2D的参数,主要修改线的属性,如使用color = ‘b’来设置线的颜色,alpha=0.9透明度,linestyle='-'线的形状。】# ax2.grid(which=‘minor’, axis=‘y’, linewidth=0.55, color=‘k’,alpha=0.3) # y坐标轴的网格使用次刻度 |
plot.tick_params(axis=‘both’, **kwargs) | 设置坐标轴刻度标签颜色【axis选择对哪个轴操作{‘x’, ‘y’, 默认‘both’}。reset 如果为True则在处理其他参数之前将所有参数设置为默认值, 默认值为False。which 选择对主or副坐标轴进行操作{‘major’, ‘minor’, ‘both’} 。direction/tickdir 刻度线的方向{‘in’, ‘out’, ‘inout’}。size/length刻度线的长度float。width刻度线的宽度float。color刻度线的颜色,可用16进制字符串表示’#EE6363’。pad刻度线与刻度值之间的距离float。labelsize刻度值字体大小float/str。labelcolor 刻度值颜色。colors 同时设置刻度线和刻度值的颜色。zorder 勾选和标记float。bottom, top, left, right是否显示刻度线bool,分别表示上下左右四边,True为显示。labelbottom, labeltop, labelleft, labelright 是否显示刻度值bool,分别表示上下左右四边,True为显示。labelrotation刻度值逆时针旋转给定的度数如20。gridOn是否添加网格线bool 。grid_alpha网格线透明度float。 grid_color网格线颜色。grid_linewidth网格线宽度float。 grid_linestyle 网格线型。】# plt.tick_params(which=‘minor’, axis=‘y’, left=False) 去掉y坐标轴的网格次刻度 |
plt.text(x, y, s, fontdict=None, **kwargs) | 向坐标轴添加文本。【 x,y放置文本的位置float,默认情况下是在数据坐标中,坐标系统可以使用转换参数进行改变。s文本str。Fontdict覆盖默认文本属性的字典,默认无。如果fontdict为None,则rcParams确定默认值。verticalalignment或va垂直对齐方式,{‘bottom’, ‘baseline’, ‘center’, ‘center_baseline’, ‘top’}。horizontalalignment或ha水平对齐方式,{‘left’, ‘center’, ‘right’}。**kwargs文本属性。】 # plt.text(0.9,1.02,s=countValue,fontsize=12, color=‘k’, transform=axplt1.transAxes) 右上角添加文本 |
plt.bar_label(container, labels=None, *, fmt=‘%g’, label_type=‘edge’, padding=0, **kwargs) | 为柱状图添加数据标签。【container柱子的容器对象,通常为bar或barh函数返回值, BarContainer对象为必备参数。labels标签文本列表,类数组对象为可选参数,如果为None,则值为使用fmt参数格式化的柱子的数据(柱子的高度)。fmt标签的格式字符串,默认值为’%g’,即将标签值格式化为浮点数。label_type 标签类型,对于普通柱状图,该参数仅用于控制标签的位置;对于堆积柱状图,不同标签类型对应不同的标签值;默认值为'edge' 标签位于柱子的端点,显示的值为柱子的端点位置,对于堆积柱状图即堆积的多个柱子的总长度。'center' 标签位于柱子的中部,显示的值为柱子的长度;padding标签与柱子之间的距离,单位为像素,默认值为0。**kwargs传递给 annotate()的其他参数。】# p1 = plt.bar(velue,count, color=“black”,width=0.1) 绘制条形图 # plt.bar_label(p1, label_type=‘edge’) 为柱状图添加数据标签 |
plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None) | 调整子图布局,对于没有设置的参数保持不变,初始值由rcParams[“figure.subplot.[name]”]提供。【left所有子图整体相对于图像的左外边距,距离单位为图像宽度的比例(小数),浮点数默认值为0.125。right所有子图整体相对于图像的右外边距,距离单位为图像宽度的比例(小数),浮点数默认值为0.0。bottom所有子图整体相对于图像的下外边距,距离单位为图像高度的比例(小数),浮点数默认值为0.11。top所有子图整体相对于图像的上外边距,距离单位为图像高度的比例(小数),浮点数默认值为0.88。wspace子图间宽度内边距,距离单位为子图平均宽度的比例(小数),浮点数默认值为0.2。hspace子图间高度内边距,距离单位为子图平均高度的比例(小数),浮点数默认值为0.2。】 |
plt.fill_between(x,y,y2=0,where=None,interpolate=False,step=None,*,data=None,**kwargs) | 填充两个水平曲线之间的区域。【x定义水平轴上的点(数组)。y表示y轴覆盖的下限(数组或者标量)。y2表示y轴覆盖的上限(数组或者标量)。where要填充区域的条件,排除某些垂直区域的填充(数组),意味着两个假值之间的一个孤立的真值将不进行填充,相邻的False值将导致不填充True值的两边。interpolate只有在使用了where参数同时两条曲线交叉时才有效boole,默认情况下被填充的区域将被放在x阵列的位置,定义一个被填充的多边形区域,与x相交的部分被裁剪。step用于指定步骤将发生的位置,pre代表区间(x[i-1],x[i])的值为y[i],x值向左移动;post代表区间(x[i],x[i+1])的值为y[i],x值向右移动;mid代表步骤发生在x位置的中间。】 |
ax.spines['left'].set_visible(False) # 去掉左边的边框
ax.spines['right'].set_visible(False) # 去掉右边的边框
ax.spines['top'].set_visible(False) # 去掉上边的边框
ax.spines[’ '].xxx | 说明 | 默认值 |
---|---|---|
set_visible(bool) | 边框的可见性 | True |
ax.xaxis.set_ticks_position({“top”,“left”……}) | 刻度的显示位置 | 外面 (不是 ax.spines [’ '].) |
set_position({“top”,“left”……}) | 边框的位置 | 左下角为交点 |
set_color(string) | 边框的颜色 | “black"(当值为 None 也是隐藏) |
set_linewidth(int) | 边框的宽度 | 1 |
set_linestyle(string) | 边框的线性 | ”-“ |
函数 | 说明 |
---|---|
plt.savafig() | 保存绘制的图片,可以指定图片的分辨率、边缘的颜色等参数。 |
plt.show() | 在本机显示图形。 |
有效的关键字参数是Line2D属性,“transform”除外:
位置字符串 | 位置代码 |
---|---|
最佳 | 0 |
右上角 | 1 |
左上角 | 2 |
左下 | 3 |
右下角 | 4 |
右上 | 5 |
左中部 | 6 |
中间偏右 | 7 |
中心偏下 | 8 |
中心偏上 | 9 |
中心 | 10 |
互补色计算公式如下:
若某颜色RGB代码为:r, g, b
则其互补色RGB代码为:255-r, 255-g, 255-b
白色:rgb(255,225,255) #FFFFFF,white( w )
黑色:rgb(0,0,0) #000000, black( k )
红色:rgb(255,0,0) #FF0000,red( r )
绿色:rgb(0,255,0) #00FF00,green( g )
蓝色:rgb(0,0,255) #0000FF,blue( b )
黄色:rgb(255,225,0) #FFFF00,yellow( y )
青色:rgb(0,255,255) #00FFFF
紫色:rgb(255,0,255) #FF00FF
https://blog.csdn.net/Discover304/article/details/121991061
cnames = {'aliceblue': '#F0F8FF','antiquewhite': '#FAEBD7','aqua': '#00FFFF','aquamarine': '#7FFFD4','azure': '#F0FFFF','beige': '#F5F5DC','bisque': '#FFE4C4','black': '#000000','blanchedalmond': '#FFEBCD','blue': '#0000FF','blueviolet': '#8A2BE2','brown': '#A52A2A','burlywood': '#DEB887','cadetblue': '#5F9EA0','chartreuse': '#7FFF00','chocolate': '#D2691E','coral': '#FF7F50','cornflowerblue': '#6495ED','cornsilk': '#FFF8DC','crimson': '#DC143C','cyan': '#00FFFF','darkblue': '#00008B','darkcyan': '#008B8B','darkgoldenrod': '#B8860B','darkgray': '#A9A9A9','darkgreen': '#006400','darkkhaki': '#BDB76B','darkmagenta': '#8B008B','darkolivegreen': '#556B2F','darkorange': '#FF8C00','darkorchid': '#9932CC','darkred': '#8B0000','darksalmon': '#E9967A','darkseagreen': '#8FBC8F','darkslateblue': '#483D8B','darkslategray': '#2F4F4F','darkturquoise': '#00CED1','darkviolet': '#9400D3','deeppink': '#FF1493','deepskyblue': '#00BFFF','dimgray': '#696969','dodgerblue': '#1E90FF','firebrick': '#B22222','floralwhite': '#FFFAF0','forestgreen': '#228B22','fuchsia': '#FF00FF','gainsboro': '#DCDCDC','ghostwhite': '#F8F8FF','gold': '#FFD700','goldenrod': '#DAA520','gray': '#808080','green': '#008000','greenyellow': '#ADFF2F','honeydew': '#F0FFF0','hotpink': '#FF69B4','indianred': '#CD5C5C','indigo': '#4B0082','ivory': '#FFFFF0','khaki': '#F0E68C','lavender': '#E6E6FA','lavenderblush': '#FFF0F5','lawngreen': '#7CFC00','lemonchiffon': '#FFFACD','lightblue': '#ADD8E6','lightcoral': '#F08080','lightcyan': '#E0FFFF','lightgoldenrodyellow': '#FAFAD2','lightgreen': '#90EE90','lightgray': '#D3D3D3','lightpink': '#FFB6C1','lightsalmon': '#FFA07A','lightseagreen': '#20B2AA','lightskyblue': '#87CEFA','lightslategray': '#778899','lightsteelblue': '#B0C4DE','lightyellow': '#FFFFE0','lime': '#00FF00','limegreen': '#32CD32','linen': '#FAF0E6','magenta': '#FF00FF','maroon': '#800000','mediumaquamarine': '#66CDAA','mediumblue': '#0000CD','mediumorchid': '#BA55D3','mediumpurple': '#9370DB','mediumseagreen': '#3CB371','mediumslateblue': '#7B68EE','mediumspringgreen': '#00FA9A','mediumturquoise': '#48D1CC','mediumvioletred': '#C71585','midnightblue': '#191970','mintcream': '#F5FFFA','mistyrose': '#FFE4E1','moccasin': '#FFE4B5','navajowhite': '#FFDEAD','navy': '#000080','oldlace': '#FDF5E6','olive': '#808000','olivedrab': '#6B8E23','orange': '#FFA500','orangered': '#FF4500','orchid': '#DA70D6','palegoldenrod': '#EEE8AA','palegreen': '#98FB98','paleturquoise': '#AFEEEE','palevioletred': '#DB7093','papayawhip': '#FFEFD5','peachpuff': '#FFDAB9','peru': '#CD853F','pink': '#FFC0CB','plum': '#DDA0DD','powderblue': '#B0E0E6','purple': '#800080','red': '#FF0000','rosybrown': '#BC8F8F','royalblue': '#4169E1','saddlebrown': '#8B4513','salmon': '#FA8072','sandybrown': '#FAA460','seagreen': '#2E8B57','seashell': '#FFF5EE','sienna': '#A0522D','silver': '#C0C0C0','skyblue': '#87CEEB','slateblue': '#6A5ACD','slategray': '#708090','snow': '#FFFAFA','springgreen': '#00FF7F','steelblue': '#4682B4','tan': '#D2B48C','teal': '#008080','thistle': '#D8BFD8','tomato': '#FF6347','turquoise': '#40E0D0','violet': '#EE82EE','wheat': '#F5DEB3','white': '#FFFFFF','whitesmoke': '#F5F5F5','yellow': '#FFFF00','yellowgreen': '#9ACD32'}
英文代码 | 形象颜色 | HEX格式 | RGB格式 |
---|---|---|---|
LightPink | 浅粉红 | #FFB6C1 | 255,182,193 |
Pink | 粉红 | #FFC0CB | 255,192,203 |
Crimson | 猩红 | #DC143C | 220,20,60 |
LavenderBlush | 脸红的淡紫色 | #FF0F5 | 255,240,245 |
PaleVioletRed | 苍白的紫罗兰红色 | #DB7093 | 219,112,147 |
HotPink | 热情的粉红 | #FF69B4 | 255,105,180 |
DeepPink | 深粉色 | #FF1493 | 255,20,147 |
MediumVioletRed | 适中的紫罗兰红色 | #C71585 | 199,21,133 |
Orchid | 兰花的紫色 | #DA70D6 | 218,112,214 |
Thistle | 蓟 | #D8BFD8 | 216,191,216 |
Plum | 李子 | #DDA0DD | 221,160,221 |
Violet | 紫罗兰 | #EE82EE | 238,130,238 |
Magenta | 洋红 | #FF00FF | 255,0,255 |
Fuchsia | 灯笼海棠(紫红色) | #FF00FF | 255,0,255 |
DarkMagenta | 深洋红色 | #8B008B | 139,0,139 |
Purple | 紫色 | #800080 | 128,0,128 |
MediumOrchid | 适中的兰花紫 | #BA55D3 | 186,85,211 |
DarkViolet | 深紫罗兰色 | #9400D3 | 148,0,211 |
DarkOrchid | 深兰花紫 | #9932CC | 153,50,204 |
Indigo | 靛青 | #4B0082 | 75,0,130 |
BlueViolet | 深紫罗兰的蓝色 | #8A2BE2 | 138,43,226 |
MediumPurple | 适中的紫色 | #9370DB | 147,112,219 |
MediumSlateBlue | 适中的板岩暗蓝灰色 | #7B68EE | 123,104,238 |
SlateBlue | 板岩暗蓝灰色 | #6A5ACD | 106,90,205 |
DarkSlateBlue | 深板岩暗蓝灰色 | #483D8B | 72,61,139 |
Lavender | 薰衣草花的淡紫色 | #E6E6FA | 230,230,250 |
GhostWhite | 幽灵的白色 | #F8F8FF | 248,248,255 |
Blue | 纯蓝 | #0000FF | 0,0,255 |
IndigoBlue | 靛蓝 | #0000FF | 0,0,255 |
MediumBlue | 适中的蓝色 | #0000CD | 0,0,205 |
MidnightBlue | 午夜的蓝色 | #191970 | 25,25,112 |
DarkBlue | 深蓝色 | #00008B | 0,0,139 |
Navy | 海军蓝,深靛蓝 | #000080 | 0,0,128 |
RoyalBlue | 皇家蓝 | #4169E1 | 65,105,225 |
CornflowerBlue | 矢车菊的蓝色 | #6495ED | 100,149,237 |
LightSteelBlue | 淡钢蓝 | #B0C4DE | 176,196,222 |
LightSlateGray | 浅石板灰 | #778899 | 119,136,153 |
SlateGray | 石板灰 | #708090 | 112,128,144 |
DodgerBlue | 道奇蓝 | #1E90FF | 30,144,255 |
AliceBlue | 爱丽丝蓝 | #F0F8FF | 240,248,255 |
SteelBlue | 钢蓝 | #4682B4 | 70,130,180 |
LightSkyBlue | 淡蓝色 | #87CEFA | 135,206,250 |
SkyBlue | 天蓝色 | #87CEEB | 135,206,235 |
DeepSkyBlue | 深天蓝 | #00BFFF | 0,191,255 |
LightBlue | 淡蓝 | #ADD8E6 | 173,216,230 |
PowderBlue | 火药蓝 | #B0E0E6 | 176,224,230 |
CadetBlue | 军校蓝 | #5F9EA0 | 95,158,160 |
Azure | 蔚蓝色 | #F0FFFF | 240,255,255 |
LightCyan | 淡青色 | #E1FFFF | 225,255,255 |
PaleTurquoise | 苍白的绿宝石 | #AFEEEE | 175,238,238 |
Cyan | 青色 | #00FFFF | 0,255,255 |
Aqua | 水绿色 | #00FFFF | 0,255,255 |
DarkTurquoise | 深绿宝石 | #00CED1 | 0,206,209 |
DarkSlateGray | 深石板灰 | #2F4F4F | 47,79,79 |
DarkCyan | 深青色 | #008B8B | 0,139,139 |
Teal | 水鸭色 | #008080 | 0,128,128 |
MediumTurquoise | 适中的绿宝石 | #48D1CC | 72,209,204 |
LightSeaGreen | 浅海洋绿 | #20B2AA | 32,178,170 |
Turquoise | 绿宝石 | #40E0D0 | 64,224,208 |
Auqamarin | 绿玉/碧绿色 | #7FFFAA | 127,255,170 |
MediumAquamarine | 适中的碧绿色 | #00FA9A | 0,250,154 |
MediumSpringGreen | 适中的春天的绿色 | #00FF7F | 0,255,127 |
MintCream | 薄荷奶油 | #F5FFFA | 245,255,250 |
SpringGreen | 春天的绿色 | #3CB371 | 60,179,113 |
SeaGreen | 海洋绿 | #2E8B57 | 46,139,87 |
Honeydew | 蜂蜜 | #F0FFF0 | 240,255,240 |
LightGreen | 淡绿色 | #90EE90 | 144,238,144 |
PaleGreen | 苍白的绿色 | #98FB98 | 152,251,152 |
DarkSeaGreen | 深海洋绿 | #8FBC8F | 143,188,143 |
LimeGreen | 酸橙绿 | #32CD32 | 50,205,50 |
Lime | 酸橙色 | #00FF00 | 0,255,0 |
ForestGreen | 森林绿 | #228B22 | 34,139,34 |
Green | 纯绿 | #008000 | 0,128,0 |
DarkGreen | 深绿色 | #006400 | 0,100,0 |
Chartreuse | 查特酒绿 | #7FFF00 | 127,255,0 |
LawnGreen | 草坪绿 | #7CFC00 | 124,252,0 |
GreenYellow | 绿黄色 | #ADFF2F | 173,255,47 |
OliveDrab | 橄榄土褐色 | #556B2F | 85,107,47 |
Beige | 米色(浅褐色) | #F5F5DC | 245,245,220 |
LightGoldenrodYellow | 浅秋麒麟黄 | #FAFAD2 | 250,250,210 |
Ivory | 象牙 | #FFFFF0 | 255,255,240 |
LightYellow | 浅黄色 | #FFFFE0 | 255,255,224 |
Yellow | 纯黄 | #FFFF00 | 255,255,0 |
Olive | 橄榄 | #808000 | 128,128,0 |
DarkKhaki | 深卡其布 | #BDB76B | 189,183,107 |
LemonChiffon | 柠檬薄纱 | #FFFACD | 255,250,205 |
PaleGodenrod | 灰秋麒麟 | #EEE8AA | 238,232,170 |
Khaki | 卡其布 | #F0E68C | 240,230,140 |
Gold | 金 | #FFD700 | 255,215,0 |
Cornislk | 玉米色 | #FFF8DC | 255,248,220 |
GoldEnrod | 秋麒麟 | #DAA520 | 218,165,32 |
FloralWhite | 花的白色 | #FFFAF0 | 255,250,240 |
OldLace | 老饰带 | #FDF5E6 | 253,245,230 |
Wheat | 小麦色 | #F5DEB3 | 245,222,179 |
Moccasin | 鹿皮鞋 | #FFE4B5 | 255,228,181 |
Orange | 橙色 | #FFA500 | 255,165,0 |
PapayaWhip | 番木瓜 | #FFEFD5 | 255,239,213 |
BlanchedAlmond | 漂白的杏仁 | #FFEBCD | 255,235,205 |
NavajoWhite | 纳瓦霍白/印第安黄 | #FFDEAD | 255,222,173 |
AntiqueWhite | 古代的白色 | #FAEBD7 | 250,235,215 |
Tan | 晒黑 | #D2B48C | 210,180,140 |
BrulyWood | 结实的树 | #DEB887 | 222,184,135 |
Bisque | (浓汤)乳脂、番茄等 | #FFE4C4 | 255,228,196 |
DarkOrange | 深橙色 | #FF8C00 | 255,140,0 |
Linen | 亚麻布 | #FAF0E6 | 250,240,230 |
Peru | 秘鲁 | #CD853F | 205,133,63 |
PeachPuff | 桃色 | #FFDAB9 | 255,218,185 |
SandyBrown | 沙棕色 | #F4A460 | 244,164,96 |
Chocolate | 巧克力 | #D2691E | 210,105,30 |
SaddleBrown | 马鞍棕色 | #8B4513 | 139,69,19 |
SeaShell | 海贝壳 | #FFF5EE | 255,245,238 |
Sienna | 黄土赭色 | #A0522D | 160,82,45 |
LightSalmon | 浅鲜肉(鲑鱼)色 | #FFA07A | 255,160,122 |
Coral | 珊瑚 | #FF7F50 | 255,127,80 |
OrangeRed | 橙红色 | #FF4500 | 255,69,0 |
DarkSalmon | 深鲜肉(鲑鱼)色 | #E9967A | 233,150,122 |
Tomato | 番茄 | #FF6347 | 255,99,71 |
MistyRose | 薄雾玫瑰 | #FFE4E1 | 255,228,225 |
Salmon | 鲜肉(鲑鱼)色 | #FA8072 | 250,128,114 |
Snow | 雪 | #FFFAFA | 255,250,250 |
LightCoral | 淡珊瑚色 | #F08080 | 240,128,128 |
RosyBrown | 玫瑰棕色 | #BC8F8F | 188,143,143 |
IndianRed | 印度红 | #CD5C5C | 205,92,92 |
Red | 纯红 | #FF0000 | 255,0,0 |
Brown | 棕色 | #A52A2A | 165,42,42 |
FireBrick | 耐火砖 | #B22222 | 178,34,34 |
DarkRed | 深红色 | #8B0000 | 139,0,0 |
Maroon | 栗色 | #800000 | 128,0,0 |
White | 纯白 | #FFFFFF | 255,255,255 |
WhiteSmoke | 白烟 | #F5F5F5 | 245,245,245 |
Gainsboro | 庚斯博罗灰色/淡灰色/亮灰 | #DCDCDC | 220,220,220 |
LightGray | 浅灰色 | #D3D3D3 | 211,211,211 |
Silver | 银白色 | #C0C0C0 | 192,192,192 |
DarkGray | 深灰色 | #A9A9A9 | 169,169,169 |
Gray | 灰色 | #808080 | 128,128,128 |
DimGray | 暗淡的灰色 | #696969 | 105,105,105 |
Black | 纯黑 | #000000 | 0,0,0 |
字符 | 描述 |
---|---|
‘.’ | 点标记 |
‘o’ | 圆圈标记 |
‘x’ | X标记 |
‘D’ | 钻石标记 |
‘H’ | 六角形标记 |
‘s’ | 正方形标记 |
‘+’ | 加号标记 |
字符 | 描述 |
---|---|
‘-‘ | 实心线 |
‘-‘ | 虚线 |
‘-.’ | 虚线 |
‘:’ | 虚线 |
‘H’ | 六角形标记 |
常用字体样式
- SimHei 中文黑体
- Kaiti 中文楷体
- LiSu 中文隶书
- FangSong 中文仿宋
- YouYuan 中文幼圆
- STSong 华文宋体
- SimSun 宋体
- Calibri
- Arial
matplotlib字体设置:https://blog.csdn.net/fengdu78/article/details/111189331
matplotlib.pyplot.rcParams
是一个字典,其中每个键值对的 “键”,对应以字符串形式表现的 rc 参数名,“值” 对应该参数的值。通过修改字典键值对中的值,即可设定 rc 参数。
# 设置matplotlib正常显示中文和负号
plt.rcParams['font.sans-serif'] = 'SimHei' # 用黑体显示中文SimHei
# plt.rcParams["font.family"]="SimHei" # 显示中文
plt.rcParams['axes.unicode_minus'] = False # 正常显示负号
plt.rcParams['font.size'] = 14 # 调整字体大小
import matplotlib.pyplot as plt
from matplotlib import font_manager
for font in font_manager.fontManager.ttflist:
# 查看字体名以及对应的字体文件名
print(font.name, '-', font.fname)
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import pandas as pd
from plottable import Table, ColDef
# 设置matplotlib正常显示中文和负号
# plt.rcParams['font.sans-serif'] = 'Arial' # 用黑体显示中文SimHei
plt.rcParams["font.family"]="SimHei"
plt.rcParams['axes.unicode_minus'] = False # 正常显示负号
colLabels = ['Name','Math','Chinese','English','Physics'] # 表格行名
demo_df=pd.DataFrame(
np.random.rand(5,5),
columns=colLabels
)
demo_df.index.name = "ID" # 设置index的名称,没有默认为index
fig,ax=plt.subplots()
# 进行表格奇数偶数行底色的设置: odd_row_color奇数和even_row_color偶数
# 样式设置: col_label_cell_kw表头区域单元格, cell_kw数据区域单元格
# 控制全部单元格的文字样式: textprops
# 配置行分割线: bool型参数, col_label_divider是否为表头(默认为Ture)、footer_divider是否为表格尾部(默认为False)、row_dividers是否为数据行绘制分割线(默认为Ture)
# col_label_divider_kw、footer_divider_kw、row_divider_kw则可以分别控制各个部分分割线的样式,支持plt.plot中全部参数
# column_definitions可细粒度地对每一列进行自由的样式定义,其中每个ColDef()对象通过参数name与列名进行对应
# 通过为ColDef设置参数,分别基于对应列的数值,对其单元格底色cmap 或 字体颜色text_cmap进行值映射
# 为字段创建分组展示, 通过为若干个ColDef设置相同的group参数,我们可以为具有相同group参数的字段添加分组标识
# 为指定字段绘制列边框,通过为ColDef设置参数border,我们可以决定如何绘制不同字段的列边框
table = Table(
demo_df,
col_label_cell_kw={'facecolor':"#DCDCDC"}, # 表头区域单元格 样式设置
cell_kw={'facecolor':'w'}, # 数据区域单元格 样式设置
textprops={ # 控制全部单元格的文字样式
'fontsize':10,
'ha':'left', # 为不同字段定义水平对齐方式'ha'
# 'bbox':{"boxstyle": "circle","pad": 0.35} # 数据圆圈外框"boxstyle": "circle"
},
row_dividers=False, # 配置行分割线, 不显示数据行绘制分割线
col_label_divider_kw={"linewidth": 1,'color':'grey'}, # 控制 表头 部分分割线的样式 col_label_divider = True,
column_border_kw={"linewidth": 1,'color':'grey'},
column_definitions=[ #
ColDef(name='ID',width=0.05), # width分别为不同列调整宽度(每列的默认宽度为1)
ColDef(name='Name',width=0.2,formatter="{:.2f}"), # 每个ColDef对象都可设置textprops参数
ColDef(name='Math',width=0.08,formatter="{:.2f}"), # formatter="{:.2f}"保留2位小数
ColDef(name='Chinese',width=0.1,formatter="{:.2f}"),
ColDef(name='English',width=0.1,formatter="{:.2f}"),
ColDef(name='Physics',width=0.08,formatter="{:.2f}"),
]
)
row_colors = {
"top4": "#2d3636",
"top6": "#516362",
"playoffs": "#8d9386",
"relegation": "#c8ab8d",
"even": "#627979",
"odd": "#68817e",
}
table.rows[1].set_facecolor(row_colors["playoffs"]) # 填充数据某一行的背景色
table.rows[1].set_fontcolor("r") # 修改数据某一行的字体颜色
plt.show()
# 导入matplotlib库中的pyplot
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import gridspec
import pandas as pd
# 解决中文乱码,可自行修改期望字体
plt.rcParams['font.sans-serif'] = 'SimHei'
# # 解决负号无法显示的问题
plt.rcParams['axes.unicode_minus'] = False
# pd.set_option('display.unicode.ambiguous_as_wide',True)# 数据与列名对齐不错行
# pd.set_option('display.unicode.east_asian_width',True)# 数据与列名对齐不错行
# pd.set_option('display.max_columns',None)# 显示所有列
# pd.set_option('display.max_row',None)# 显示所有行
# 设置图片大小, figsize图片大小, dpi参数像素参数可以使图片更加清晰;
# 创建一个点数为 8 x 6 的窗口, 并设置分辨率为 80像素/每英寸
plt.figure(figsize=(16, 8), dpi=80)
# 再创建一个规格为 1 x 1 的子图
# plt.subplot(111)
# # 创建绘制图表样式为 2X1 的图片区域,并选中第一个子图
# plt.subplot(211)
gs = gridspec.GridSpec(8,8) # 指定8行8列
ax1 = plt.subplot(gs[:5,:6])
# 设置字体为微软雅黑,解决中文显示问题
# matplotlib.rc("font", family='Microsoft YaHei')
# 1.准备数据
squares = [1, 0, 1, 4, 9]
seq = [-1, 0, 1, 2, 3] # 索引列表
x = np.linspace(-2, 6, 50)
y2 = 3 - x # 曲线 y2
# 2.画线plot(),通过设置参数的方式来改变图形的样式。# 列表内的数据被视为y轴的值,x轴的值会根据列表值的索引位置自动产生
# df.plot(x, y, kind, figsize, title, grid, legend, style)
# x横坐标,只有dataframe对象时x可用; y纵坐标变量;
# kind 可视化图的种类,如line折线图,hist直方图, bar条形图, barh水平条形图, pie饼形图, kde, scatter散点图,'box'箱型图。
# figsize画布尺寸;title标题;grid是否显示格子线条; legend是否显示图例;style图的风格;
plt.plot(seq, squares, color="blue", linewidth=1.0, marker=".", linestyle="-", label="y11111111") # 绘制颜色为蓝色、宽度为 1 像素的连续曲线 y1
plt.plot(x, y2, color="#800080", linewidth=2.0, marker="x", linestyle="--", label="y2") # 绘制颜色为紫色、宽度为 2 像素的不连续曲线 y2
# 3.设置x、y轴的最小刻度和最大刻度
# plt.axis([-1, 6, -2, 10]) # 将x轴设为0~10,将y轴设为0~100
plt.xlim(-1, 6) # 设置横轴的上下限
plt.ylim(-2, 10) # 设置纵轴的上下限
# plt.xticks([-1, -0.5, 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5],rotation=45) # 设置横轴精准刻度, rotation旋转角度
# plt.yticks(range(min(y),max(y)+1)) # 设置y纵轴的刻度
xNum=np.arange(0,8,1)
# 区间填充颜色标亮
plt.fill_between(xNum[2:5],-2,10,facecolor='#FFFF00',zorder=0) # 填充两个水平曲线之间的区域
# 设置主副刻度显示标注
ax1.xaxis.set_major_locator(plt.MultipleLocator(1))
ax1.xaxis.set_minor_locator(plt.MultipleLocator(0.2)) # 设置轴的副刻度,设置0.2倍数
ax1.yaxis.set_major_locator(plt.MultipleLocator(2))
ax1.yaxis.set_minor_locator(plt.MultipleLocator(0.5))
ax1.tick_params(which='both', axis='y', direction='inout') # 设置坐标轴刻度线的方向
ax1.grid(which='major', axis='both', linewidth=0.75, color='grey',alpha=0.9,zorder=3) # y坐标轴的网格使用主刻度
ax1.grid(which='minor', axis='both', linewidth=0.55, color='grey',alpha=0.3,zorder=3) # y坐标轴的网格使用次刻度
# 更改边框的颜色
ax1.spines['left'].set_color('grey') # 更改左边的边框的颜色
ax1.spines['right'].set_color('grey')
ax1.spines['top'].set_color('grey')
ax1.spines['bottom'].set_color('grey')
ax1.spines['left'].set_visible(False) # 去掉左边的边框
ax1.spines['right'].set_visible(False) # 去掉右边的边框
# ax1.spines['top'].set_visible(False) # 去掉上边的边框
# 4.设置标题及字体大小
plt.title(label='x的平方', fontsize=18) # 图表标题,title(标题名称,fontsize=字体大小)
plt.xlabel(xlabel='值', fontsize=15) # 设置x横轴标签
plt.ylabel(ylabel='平方值', fontsize=15) # 设置y纵轴标签
# 5.设置坐标轴刻度
# 使用tick_params()方法:axis 应用范围(x应用到x轴,y应用到y轴,both应用到x轴和y轴);labelsize 坐标轴的刻度大小;color 线条颜色
plt.tick_params(axis='both', labelsize=12, color='red', labelcolor='green')
# 绘制散点(3, 0)
plt.scatter([3], [0], s=50, color="#800080")
# 对(3, 0)做标注
plt.annotate("(3, 0)",
xy=(3.3, 0), # 在(3.3, 0)上做标注
fontsize=16, # 设置字体大小为 16
xycoords='data') # xycoords='data' 是说基于数据的值来选位置
# 给点添加注释
plt.text(4, -0.5, "添加注释important",
fontdict={'size': 12, 'color': 'green'}) # fontdict设置文本字体
# 为图形加上网格线
plt.grid(alpha=0.9) # alpha=0.9透明度, linestyle='-'#添加形状
# # 对空白区域进行自动填充
# plt.tight_layout()
# 添加图例
# plt.legend() 需要传入一个位置值。"right"右边,默认是右上。如果因图形挡住右上,会自动往下选择空白地方绘制
# loc属性有这些:'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'upper center', 'center','best'
# plt.legend(loc = (x , y))其中x和y的值可以根据图中的相对位置进行调整; 原点就是图的左下角,坐标的数值表示的是比例
# (1,0)右下角; (0,1)左上角; (0.5,0.5)中间; (0.4,0.4)中间往左下一点。
# plt.legend(loc=(1.01, 0.9), prop={'size': 8}, ncol=1) # ncol默认为1并列展示;2为并排展示。
plt.legend(loc='upper left', bbox_to_anchor=(1,1), prop={'size': 10}, ncol=1) # ncol默认为1并列展示;2并排展示。
# plt.style.use('fivethirtyeight') # pyplot自带样式'ggplot'
ax2 = plt.subplot(gs[0:,6:]) # 为图例占位
plt.axis('off')
# 插入表格
# # 创建绘制图表样式为 2X1 的图片区域,并选中第二个子图
# plt.subplot(212)
ax3 = plt.subplot(gs[5:,:6])
# ax3.axis('tight') # 修改轴范围,tight使所有数据可见
plt.subplots_adjust(hspace=2) # 调整子图间高度内边距
plt.axis('off')
colLabels = ["A难度水平","B难度水平","C难度水平","D难度水平"] # 表格行名
studentValues = [[350,150,200,300],[222,43,600,23]] # 表格每一行数据
rowLabels = ["0",'1']
cellColours = [["#56b5fd","w","w","w"],[ "w","w","w","w"]]
colColours = ["#377eb8","#e41a1c","#4daf4a","#984ea3"]
# rowColours = ["w","w"]
colWidths = [0.2,0.2,0.2,0.2] # 相当于colWidths = [0.15]*4
table = plt.table(
colLabels=colLabels, # 包含 列标签 的字符串列表。
cellText=studentValues,
rowLabels=rowLabels, # 包含 行标签 的字符串列表。
colColours=colColours, # 包含 列标签 的颜色列表。
cellColours=cellColours, # 包含 单元格 的颜色列表。
# rowColours=rowColours, # 包含 行表头 的颜色列表。
colLoc = "left", # 表格 列表头文本 的对齐方式
cellLoc="left", # 表格 单元格文本 的对齐方式
# rowLoc="center", # 表格 行表头文本 的对齐方式
loc="upper center", # 单元格相对于子图的位置
colWidths=colWidths, # 浮点数列表,指定每列的宽度。
)
table.set_fontsize(20) # 字体大小,设置后默认自动调节改为 ‘不自动相’当于table.auto_set_font_size(False)
table.scale(1, 1.5) # 根据指定的比例缩放表格。
table.get_celld()[(1,2)].set_text_props(color='red') # 字体颜色
# table.auto_set_column_width(col=list(range(len(studentValues[0])))) # 根据表格大小自动设置列宽。
table[(2, 1)].set_facecolor("#eac3f5") # 设置特定单元格的面颜色
# 保存图片, 去掉白边bbox_inches='tight', bbox_inches = extent
# plt.savefig(outputFile, dpi=120, bbox_inches='tight')
# 显示绘制的图形
plt.show()