前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Matplotlib绘图复习.基本元素

Matplotlib绘图复习.基本元素

作者头像
云深无际
发布2021-09-14 15:43:49
发布2021-09-14 15:43:49
77800
代码可运行
举报
文章被收录于专栏:云深之无迹云深之无迹
运行总次数:0
代码可运行

这文章适合在电脑上面看,手机屏幕太小了

今天绘图,好多忘记了,然后参考了一篇文章,整理一份复习资料出来:

代码语言:javascript
代码运行次数:0
复制
plot(x, y, linestyle, linewidth, marker, markersize, color, alpha)

线的风格

标记点的样子

代码语言:javascript
代码运行次数:0
复制
plot(x, y, linestyle, linewidth, marker, markersize, color, alpha)

x就是每次取的步进值

y是计算表达式后的值

线的风格

线宽

上面点的样子

这个形状的大小

颜色

透明度[0,1] 左闭右闭

颜色表

对于一个颜色有很多的输入:

red r 这样的写法是可以的

16进制的串串是可以的 “#008000”

RGBA - (Red, Green, Blue, Alpha) RGBA 值在 0-1 之间 color = (0.3, 0.5, 0.7, 0.9) 写法

代码语言:javascript
代码运行次数:0
复制
plot(x, y, fmt)

这样也是可以的

代码语言:javascript
代码运行次数:0
复制
fmt = [color] [marker] [linestyle]

fmt里面写这个

代码语言:javascript
代码运行次数:0
复制
b   ---  blue markers with default shape
ro  ---  red circles
g-  ---  green solid line
--  ---  dashed line with default color

就是这样

代码语言:javascript
代码运行次数:0
复制
b --- 默认形状的蓝色标记
ro --- 红色圆圈
g- --- 绿色实线
--- 默认颜色的虚线

我帮你翻译了

对一个图来说,坐标轴很重要:

代码语言:javascript
代码运行次数:0
复制
xlabel(xlabel, fontproporties=None, fontsize=12, rotation=0, backgroundcolor='b', color='k', alpha=None, bbox=None)

ylabel(ylabel, fontproporties=None, fontsize=12, rotation=90, backgroundcolor='b', color='k', alpha=None, bbox=None)

调用方式

xlabel --- 标签。

fontproporties --- 字体路径,默认None。(注意:font设置后,fontdict部分属性失效)

fontsize --- 字体大小,默认12

rotation --- 旋转角度,从0开始。ylabel默认90,即垂直;xlabel默认0,即水平。

backgroundcolor--- 背景色。

color --- 标签颜色。

alpha --- 字体透明度。取值[0,1]。

代码语言:javascript
代码运行次数:0
复制
(2)fontdict  ---字体字典参数(key加引号),包含font属性
"fontsize":12                       --- 字体大小,默认12。整型
"fontweight":"medium"               --- 字体粗细。可选:'light', 'normal', 'medium', 'semibold', 'bold', 'heavy', 'black'
"fontstyle":"normal"                --- 字体风格。可选:"normal", "italic"-斜体, "oblique"-倾斜
"verticalalignment":"baseline"      --- 设置垂直对齐方式。可选:"center", "bottom", "top", "baseline"
"horizontalalignment":"center"      --- 设置水平对齐方式。可选:"left","right","center"

参数

代码语言:javascript
代码运行次数:0
复制
xlabel(xlabel, fontproporties=None)

字典参数

代码语言:javascript
代码运行次数:0
复制
(3)bbox  ---设置标题盒属性字典参数(key不加引号)
boxstyle                   --- 设置边框风格。如:"round"
facecolor                  --- fc。设置标题框背景颜色。
edgecolor                  --- ec。设置边框颜色。
linewidth                  --- lw。设置边框厚度。
alpha                      --- 设置背景透明度

可以看到中文,显示异常

VSCode里面可以选渲染的引擎

代码语言:javascript
代码运行次数:0
复制

plt.xlabel("时间")
plt.ylabel("数量")
plt.rcParams['font.sans-serif']=['SimHei']

显示正常了

代码语言:javascript
代码运行次数:0
复制
C:\Windows\Fonts

里面的字体,右键就可以看见具体的名字啥的

代码语言:javascript
代码运行次数:0
复制
from matplotlib import font_manager
font = font_manager.FontProperties(fname="‪C:\Windows\Fonts\STXINGKA.TTF")

plt.xlabel("时间", fontproperties=font)
plt.ylabel("数量", fontproperties=font)

没出来结果,姿势不对?

这里给一段代码,随鼠标滑动自动标注代码

代码语言:javascript
代码运行次数:0
复制
xticks(ticks=None, labels=None, rotation=0, color='k', fontsize=12, alpha=None, backgroundcolor=None, fontdict=None, bbox=None)
yticks(ticks=None, labels=None, rotation=0, color='k', fontsize=12, alpha=None, backgroundcolor=None, fontdict=None, bbox=None)

一般来说,如果你不指定刻度,机器自己算个出来

也可以通过这个函数来设置

代码语言:javascript
代码运行次数:0
复制
ticks           --- 可迭代类数组对象
labels          --- 更改刻度上的标签,但实际值还是ticks指定的。

剩下的参数一样

这个代码应该放在最后,作图函数的后面,不然就机器绘制了。

代码语言:javascript
代码运行次数:0
复制
xlim(left, right)
ylim(left, right)

轴长也是可以设置的,就是上面的是刻度

下面的是长度

其实绘图就是这样,在出结果以前,你应该在脑子里面有图的样子

代码语言:javascript
代码运行次数:0
复制
left     --- 左界限
right    --- 右界限

lim 与 ticks 这个两个都可以干预这个轴

取决于代码的前后顺序

但是lim可以小于图,就是对感兴趣的地方显著

图的表题很重要:

代码语言:javascript
代码运行次数:0
复制
title(label, fontporperties=None, loc='center', pad=None, rotation, alpha, backgroundcolor, color, fontdict=None, bbox=None)

函数

代码语言:javascript
代码运行次数:0
复制
(1)基本参数
label            ---  标题
fontporperties   ---  同上。字体文件路径font。(注意:font设置后,fontdict部分属性失效)
loc              ---  标题的位置。默认"center"。其余:"left","right"
pad              ---  标题到图表的上下距离。浮点型数据
rotation         ---  旋转角度。"vertical", "horizontal"。可以为数字
alpha            ---  字体透明度。取值[0,1],同上。
backgroundcolor  ---  背景颜色。同color字体颜色使用方法。
color            ---  字体颜色。


(2)fontdict  ---字体字典参数(key加引号),包含font属性
"fontsize":12                       --- 字体大小,默认12。整型
"fontweight":"medium"               --- 字体粗细。可选:'light', 'normal', 'medium', 'semibold', 'bold', 'heavy', 'black'
"fontstyle":"normal"                --- 字体风格。可选:"normal", "italic"-斜体, "oblique"-倾斜
"verticalalignment":"baseline"      --- 设置垂直对齐方式。可选:"center", "bottom", "top", "baseline"
"horizontalalignment":"center"      --- 设置水平对齐方式。可选:"left","right","center"


注意:fontdict里的参数可不加引号,然后直接当做基本参数使用


(3)bbox  ---设置标题盒属性字典参数(key不加引号)
boxstyle                   --- 设置边框风格。如:"round"
facecolor                  --- 设置标题框背景颜色。
edgecolor                  --- 设置边框颜色。
linewidth                  --- 设置边框厚度。
alpha                      --- 设置背景透明度

注释文本:

代码语言:javascript
代码运行次数:0
复制
annotate(text, xy, xytext, arrowprops=dict(), fontdict=None, bbox=None)
代码语言:javascript
代码运行次数:0
复制
(1)基本属性
text          --- 注释文本内容
xy            --- 要注释点的坐标
xytext        --- 注释文本的新坐标
color         --- 注释的颜色

(2)arrowprops ---箭头字典属性
color         --- 箭头的颜色
width         --- 箭头的箭身的宽度
headwidth     --- 箭头的头部的宽度
headlength    --- 箭头的头部的长度
shrink        --- 箭头的整体长度进行缩水调整。取值[0.1,0.5),表示箭头的头部和尾部同时缩小该值比例长度;取值[0.5, 0.9]表示箭头的尾部缩小该比例。其余值按原整体长度不变。
arrowstyle    --- 箭头的样式风格
  ``'-'``        None
    ``'->'``       head_length=0.4,head_width=0.2
    ``'-['``       widthB=1.0,lengthB=0.2,angleB=None
    ``'|-|'``      widthA=1.0,widthB=1.0
    ``'-|>'``      head_length=0.4,head_width=0.2
    ``'<-'``       head_length=0.4,head_width=0.2
    ``'<->'``      head_length=0.4,head_width=0.2
    ``'<|-'``      head_length=0.4,head_width=0.2
    ``'<|-|>'``    head_length=0.4,head_width=0.2
    ``'fancy'``    head_length=0.4,head_width=0.4,tail_width=0.4
    ``'simple'``   head_length=0.5,head_width=0.5,tail_width=0.2
    ``'wedge'``    tail_width=0.3,shrink_factor=0.5
(3)fontdict 文字属性,同上
(4)bbox 盒框属性,同上。
代码语言:javascript
代码运行次数:0
复制
plt.plot([-1, 0, 1],[1, 0, -1])

负号不显示

代码语言:javascript
代码运行次数:0
复制
plt.rcParams['axes.unicode_minus'] = False
# 加这代码
plt.plot([-1, 0, 1], [1, 0, -1])

显示负号了

代码语言:javascript
代码运行次数:0
复制
plt.rcParams['font.sans-serif']=['SimHei']    # 显示中文
plt.rcParams['axes.unicode_minus'] = False    # 显示负号

每次写程序都加这个代码行

代码语言:javascript
代码运行次数:0
复制
https://blog.csdn.net/weixin_44225602/article/details/103000865

文章是参考这个老哥的

几种绘图的使用场景

代码语言:javascript
代码运行次数:0
复制
bar(x, height, width=0.8, bottom=None, align='center', color='b', edgecolor='w', linewidth=None, hatch=None, joinstyle='miter', visiable=True, log=False, label=None)

条形图

代码语言:javascript
代码运行次数:0
复制
x           --- 横坐标数据。
height      --- 高度,相当于y,即纵坐标数据。
width       --- 柱子的宽度,默认为0.8。
bottom      --- 柱子底部从y轴的哪一个值开始显示,即y轴底部最小值改为该值。
align       --- 柱子相对于刻度的位置。默认'center',刻度位于柱子中间。可选:'edge',即刻度在柱子的左边缘;将width设置为负数,可将刻度设置到柱子右边。
color       --- 柱子的颜色,默认蓝色-blue。
edgecolor   --- 柱子边缘的颜色,默认白色-white。
linewidth   --- 柱子边缘的宽度。
hatch       --- 柱子内的图案。可选:'/', '\\', '|', '-', '+', 'x', 'o', 'O', '.', '*'
joinstyle   --- 柱子顶部的尖角形状,默认为'miter',即直角。可选: 'round', 'bevel',即圆角和倾斜角。
visiable    --- 图案是否可见,默认True。False即为空图。
log         --- 将y轴设置为log数据,默认为False。
label       --- 图片自身的标签。

参数意思

代码语言:javascript
代码运行次数:0
复制
movies = {
    "流浪地球":40.78,
    "飞驰人生":15.77,
    "疯狂的外星人":20.83,
    "新喜剧之王":6.10,
    "廉政风云":1.10,
    "神探蒲松龄":1.49,
    "小猪佩奇过大年":1.22,
    "熊出没·原始时代":6.71
}

plt.bar(x=list(movies.keys()), height=list(movies.values()), 
width=0.8, 
align='center', 
alpha=0.2, c
olor='red', 
linewidth=9, 
edgecolor='b', 
hatch='\\', 
joinstyle='round')


plt.xticks(list(movies.keys()), rotation=90)
plt.grid()

样子,上面有代码行

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档