【Python模块】matplotlib 柱状图

https://blog.csdn.net/denny2015/article/details/50581784

【搬运】python数字图像处理(9):直方图与均衡化

2、绘制直方图

绘图都可以调用matplotlib.pyplot库来进行,其中的hist函数可以直接绘制直方图。

调用方式:

n, bins, patches = plt.hist(arr, bins=10, normed=0, facecolor='black',
                            edgecolor='black',alpha=1,histtype='bar')

hist的参数非常多,但常用的就这六个,只有第一个是必须的,后面四个可选
arr: 需要计算直方图的一维数组
bins: 直方图的柱数,可选项,默认为10
normed: 是否将得到的直方图向量归一化。默认为0
facecolor: 直方图颜色
edgecolor: 直方图边框颜色
alpha: 透明度
histtype: 直方图类型,‘bar’, ‘barstacked’, ‘step’, ‘stepfilled’

返回值 :
n: 直方图向量,是否归一化由参数normed设定
bins: 返回各个bin的区间范围
patches: 返回每个bin里面包含的数据,是一个list

https://blog.csdn.net/asuradong/article/details/78157901

【搬运】matplotlib实现数据可视化
一、库的安装和环境的配置
windows下:py -3 -m pip install matplotlib
linux下:python3 -m pip install matplotlib
建议配合Jupyter使用。在jupyter notebook中,使用%matplotlib inline,即可进入交互页面(类似下图)
二、设置中文环境
首先引入包:

import numpy as np #之后需要用到
import matplotlib as mpl #设置环境变量
import matplotlib.pyplot as plt #绘图专用
from mpl_toolkits.mplot3d import Axes3D #绘制3D图

为了让图片兼容中文的说明、名字等,这里需要:
mpl.rcParams[‘font.sans-serif’] = [‘FangSong’]
mpl.rcParams[‘axes.unicode_minus’]=False

https://blog.csdn.net/qq_27825451/article/details/81630839

【搬运】自定义配置文件和绘图风格(rcParams和style)

我们在使用matplotliblib画图的时候经常会遇见中文或者是负号无法显示的情况,我们会添加下面两句话:

from matplotlib.pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus']=False

实际上,pylot使用rc配置文件来自定义图形的各种默认属性,称之为rc配置或rc参数。通过rc参数可以修改默认的属性,包括窗体大小、每英寸的点数、线条宽度、颜色、样式、坐标轴、坐标和网络属性、文本、字体等。
在matplotlib模块载入的时候会调用rc_params,并把得到的配置字典保存到rcParams变量中: 1、配置文件在哪里?
既然是配置文件,它也是一个文件,这个文件存在于matplotlib的安装文件夹之下,比如我的在以下文件夹:
D:\ProgramData\Anaconda3\Lib\site-packages\matplotlib\mpl-data 文件名称是
matplotlibrc 这是windows系统的,Unix和Linux会不一样。
我们可以通过实用文本文件打开这个文件进行查看,
#查看方法一:
直接打开matplotlibrc文件
#查看方式二:

 print(matplotlib.rc_params())
 print(matplotlib.rcParamsDefault)   
 print(matplotlib.rcParams)           #这三者是等价的

发现里面的内容都是“ 键-值 ”的形式,这也就是为什么我们可以通过
mpl.rcParams['font.sans-serif'] = ['SimHei'] 这种形式加以配置了。
#修改方式一
mpl.rcParams[‘lines.linewidth’] = 2
mpl.rcParams[‘lines.color’] = ‘r’ #更改划线颜色的默认设置
#修改方式二
mpl.rc('lines', linewidth=4, color='g')
#恢复默认参数
mpl.rcdefaults()
#从已有的文件更新
mpl.cr_file()

【搬运】使用matplotlib画图的时候,除了我们可以针对每一个样式自己定义以外,我们还可以使用系统定义好的样式快速配置。

style是pyplot的一个子模块,方便进行风格转换,它里面定义了很多预设风格。本质上来说,每一个预设的风格style都是一个style文件,它是以 .mplstyle 为后缀的文件。我们依然可以查看,比如我的电脑在一下文件夹下,有很多的 .mplstyle文件:
D:\ProgramData\Anaconda3\Lib\site-packages\matplotlib\mpl-data\stylelib
每一个文件名对应于一种预设风格。

我们可以打开一个文件,里面预设的风格属性也是通过“ 键-值 ”对的形式表示的。
1、预设风格的查看
方式一:直接查看相应的文件夹即可
方式二:print(plt.style.available) #会打印出所有的预设风格的名称
2、预设风格的使用——在plt.plot前添加一句话即可 plt.style.use(‘ggplot’)
##使用 ggplot 的绘图风格
3、自定义画图风格style

比如我在上面所述的文件夹下自定义一个 myownstyle.mplstyle 文件,里面的内容如下所示:

      lines.color: green
      lines.linewidth:8
      patch.edgecolor: red

      text.color: white

      axes.facecolor: yellow
      axes.edgecolor:black

然后调用如下:

import matplotlib 
import matplotlib.pyplot as plt 
import numpy as np
x=np.linspace(0,2*np.pi) 
y=np.sin(x)   
f=plt.figure() 
plt.style.use('myownstyle')    ##使用自定义的样式文件

#with plt.style.context('myownstyle'):   #将use换成context
#    pass #使用with代码块。在代码块内部画的图是制定的风格,而在代码块外部画的图却不用这种风格

plt.plot(x,y,label='sin',linewidth=5) 
plt.legend()   
plt.show() 

https://blog.csdn.net/asuradong/article/details/78157901
三、一窥全貌
首先,我们画一张正弦和余弦图。

plt.figure('sin/cos', dpi=70)
#创建一个新的 1 * 1 的子图,接下来的图样绘制在其中的第 1 块(也是唯一的一块)
plt.subplot(1,1,1)
X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
C,S = np.cos(X), np.sin(X)
#绘制余弦曲线,使用蓝色的、连续的、宽度为 1 (像素)的线条
plt.plot(X, C, color="blue", linewidth=1.0, linestyle="-")
#绘制正弦曲线,使用绿色的、连续的、宽度为 1 (像素)的线条
plt.plot(X, S, color="green", linewidth=1.0, linestyle="-")
#设置横轴的上下限
plt.xlim(-4.0,4.0)
#设置横轴记号
plt.xticks(np.linspace(-4,4,9,endpoint=True))
#设置纵轴的上下限
plt.ylim(-1.0,1.0)
#设置纵轴记号
plt.yticks(np.linspace(-1,1,5,endpoint=True))
#以分辨率 72 来保存图片
#savefig("exercice_2.png",dpi=72)
#在屏幕上显示
plt.show()

plt.figure(name,dpi):name是图片的名字,dpi是分辨率
plt.plot(x,y,color,linewidth,linestyle,label):用来绘制点线图。
color是线条颜色,linewidth是宽度,linestyle可以设置成–,就变成了虚线,
label参数和图例有关 。
plt.xlim(min,max)/plt.ylim(min,max):设置x/y轴的范围。
plt.xtricks(列表)/plt.ytricks(列表):设置x轴/y轴的上显示的值。 如果想要设置记号标签(我们可以把 3.1423.142 3.142 3.142 3.1423.142当做是 π π ππ ππ,但毕竟不够精确。当我们设置记号的时候,我们可以同时设置记号的标签。注意这里使用了 LaTeX)。可以传入两个对应的列表。
plt.legend(loc=随机默认):添加图例,图例来自于plt.plot()参数里的label,如果想让label按照公式显示,需要在字符串前后加$。即:label=’ s i n ( x ) sin(x) sin(x)
loc参数定义图标位置,可以是upper left/right类似的方向。
plt.xlabel(labelname)/ylabel(labelname):添加x/y轴的名字并且显示出来。
plt.scatter(xlist,ylist):根据需要标注图中的特殊点。
plt.title():给图一个名字
移动坐标轴:(之前的图片还是不好看)实际上每幅图有四条脊柱(上下左右),为了将脊柱放在图的中间,我们必须将其中的两条(上和右)设置为无色,然后调整剩下的两条到合适的位置——数据空间的0
点。

五、图的存储
这么漂亮的图,还是通过plt.savefig(照片名字+后缀名)保存到本地吧。

https://liam.page/2014/09/11/matplotlib-tutorial-zh-cn/

Matplotlib 教程

  1. Matplotlib 教程
    1.1. 介绍
    1.2. 初级绘制
    1.2.1. 使用默认配置
    1.2.2. 默认配置的具体内容
    1.2.3. 改变线条的颜色和粗细
    1.2.4. 设置图片边界
    1.2.5. 设置记号
    1.2.6. 设置记号的标签
    1.2.7. 移动脊柱
    1.2.8. 添加图例
    1.2.9. 给一些特殊点做注释
    1.2.10. 精益求精
    1.3. 图像、子图、坐标轴和记号
    1.4. 其他类型的图
    1.5. 结束篇
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值