matplotlib 模块

1.条形图

import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties # 修改字体
font=FontProperties(fname='C:\Windows\Fonts\simfang.ttf') plt.style.use('ggplot') # 设置条形图的背景
classes=['3班','4班','5班','6班']
students = [66, 55, 45, 70]
classes_index=range(len(classes))
plt.bar(classes_index,students,color='darkgreen') plt.xlabel('学生',fontproperties=font,fontsize=15)
plt.ylabel('学生人数',fontproperties=font,fontsize=15)
plt.title('班级-学生人数',fontproperties=font,fontsize=20)
plt.xticks(classes_index,classes,fontproperties=font)
plt.show()

2.直方图

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties # 修改字体
font=FontProperties(fname='C:\Windows\Fonts\simhei.ttf')
plt.style.use('ggplot')
x1=np.random.randn(10000) # 随机生成10000个小数
x2=np.random.randn(10000) fig = plt.figure() # 生成一张画布
ax1 = fig.add_subplot(1,2,1) # 表示一行两列取第一个
ax2 = fig.add_subplot(1,2,2) # 表示一行两列取第二个 ax1.hist(x1,bins=50,color='green') # 表示10000个小数分到50个柱子上
ax2.hist(x2,bins=50,color='blue')
ax1.set_title('x1的正太分布',fontproperties=font) # 加子标题
ax2.set_title('x2的正太分布',fontproperties=font) # 加子标题
fig.suptitle('两个正太分布',fontproperties=font,fontsize=20) # 父标题
plt.show()

3.折线图

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties # 修改字体
font=FontProperties(fname='C:\Windows\Fonts\simhei.ttf')
plt.style.use('ggplot') x1=np.random.randn(40).cumsum() # cumsum是讲生成的随机数一个个累加起来,作为对应位置的新元素
x2=np.random.randn(40).cumsum()
x3=np.random.randn(40).cumsum()
x4=np.random.randn(40).cumsum() plt.plot(x1,color='r',linestyle='-',marker='o',label='红圆线')
plt.plot(x2,color='b',linestyle='--',marker='*',label='蓝虚线')
plt.plot(x3,color='black',linestyle='-.',marker='s',label='黑方线')
plt.plot(x4,color='y',linestyle=':',marker='s',label='黄方线')
plt.legend(loc='best',prop=font) # 显示label,loc不指定默认在最佳位置显示label,指定right就是将label在右边显示
plt.show()

4.散点图+直线图

# 生成一个对称轴为x=1的二次函数
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties # 修改字体
font=FontProperties(fname='C:\Windows\Fonts\simhei.ttf') #
plt.style.use('ggplot') x=np.arange(-20,21)
# y = np.random.randn(20).cumsum()
y=(x**2)+2*x+1
plt.scatter(x,y)
plt.show()

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
font=FontProperties(fname='C:\Windows\Fonts\simhei.ttf') plt.style.use('ggplot')
x=np.arange(1,20,1)
print(x) # 拟合一条水平散点线
np.random.seed(1)
y_linear=x+10*np.random.randn(19)
print(y_linear) # 拟合一条x**2 的散点线
y_quad=x**2+10*np.random.randn(19)
print(y_quad) # s是散点大小
fig = plt.figure()
ax1 = fig.add_subplot(121)
plt.scatter(x,y_linear,s=30,color='r',label='蓝点')
plt.scatter(x,y_quad,s=100,color='b',label='红点') ax2= fig.add_subplot(122)
plt.plot(x,y_linear,color='r')
plt.plot(x,y_quad,color='b') # 限制x轴和y轴的范围取值
plt.xlim(min(x) -1,max(x) + 1)
plt.ylim(min(y_quad) - 10,max(y_quad) + 10)
fig.suptitle('散点图+直线图',fontproperties=font,fontsize=20)
ax1.set_title('散点图',fontproperties=font)
ax1.legend(prop=font) # 最佳位置显示label
ax2.set_title('折线图',fontproperties=font)
plt.show()

5.饼图

import numpy as np
import matplotlib.pyplot as plt
from pylab import mpl
from matplotlib.font_manager import FontProperties
font=FontProperties(fname='C:\Windows\Fonts\simhei.ttf')
mpl.rcParams['font.sans-serif'] = ['SimHei'] fig,ax = plt.subplots(subplot_kw=dict(aspect='equal')) recipe = ['优','良','轻度污染','中度污染','重度污染','严重污染','缺'] data = [2,49,21,9,11,6,2]
colors = ['lime','yellow','darkorange','red','purple','maroon','grey',]
wedges,texts,texts2 = ax.pie(data,
wedgeprops=dict(width = 0.5),
startangle=40,
colors=colors,
autopct='%1.0f%%',
pctdistance=0.8)
# print(wedges)
'''
[<matplotlib.patches.Wedge object at 0x000000000EE46198>, <matplotlib.patches.Wedge object at 0x000000000EE46860>,
<matplotlib.patches.Wedge object at 0x000000000EE46F28>, <matplotlib.patches.Wedge object at 0x000000000EE57630>,
<matplotlib.patches.Wedge object at 0x000000000EE57CF8>, <matplotlib.patches.Wedge object at 0x000000000EE63400>,
<matplotlib.patches.Wedge object at 0x000000000EE63AC8>]
'''
# print(texts)
# print(texts2)
plt.setp(texts2,size=14,weight='bold')
bbox_props=dict(boxstyle='squre',pad='0.3',fc='w',ec='k',lw=0.72)
kw = dict(xycoords='data',
textcoords='data',
arrowprops=dict(arrowstyle='->'),
bbox=None,
zorder=0,
va='center')
for i ,p in enumerate(wedges):
# print(i,p)
'''
0 Wedge(center=(0, 0), r=1, theta1=40, theta2=47.2, width=0.5)
1 Wedge(center=(0, 0), r=1, theta1=47.2, theta2=223.6, width=0.5)
2 Wedge(center=(0, 0), r=1, theta1=223.6, theta2=299.2, width=0.5)
3 Wedge(center=(0, 0), r=1, theta1=299.2, theta2=331.6, width=0.5)
4 Wedge(center=(0, 0), r=1, theta1=331.6, theta2=371.2, width=0.5)
5 Wedge(center=(0, 0), r=1, theta1=371.2, theta2=392.8, width=0.5)
6 Wedge(center=(0, 0), r=1, theta1=392.8, theta2=400, width=0.5)
'''
ang=(p.theta2-p.theta1)/2. + p.theta1
y=np.sin(np.deg2rad(ang))
x = np.cos(np.deg2rad(ang))
horizontalalignment = {-1:'right',1:'left'}[int(np.sign(x))]
connectionstyle='angle,angleA=0,angleB={}'.format(ang)
kw['arrowprops'].update({'connectionstyle':connectionstyle})
ax.annotate(recipe[i],
xy=(x,y),
xytext=(1.25*np.sign(x),1.3*y),
size=16,
horizontalalignment=horizontalalignment,
fontproperties=font,
**kw)
ax.set_title('饼图示例',fontproperties=font)
plt.show()

6. plot 函数参数

​ 线型linestyle(-,-.,--,..)

​ 点型marker(v,^,s,*,H,+,x,D,o,....)

​ 颜色color(b,g,r,y,k,w....)

7.图像标注参数

​ 设置图像标题:plt.title()

​ 设置x轴名称:plt.xlabel()

​ 设置y轴名称:plt.ylabel()

​ 设置X轴范围:plt.Xlim()

​ 设置Y轴范围:plt.ylim()

​ 设置X轴刻度:plt.xtlcks()

​ 设置Y轴刻度:plt.yticks()

​ 设置曲线图例:plt.legend()

matplotlib 模块的更多相关文章

  1. Windows python 安装 nNumpy、Scipy、matplotlib模块

    折腾了 很久,总结一些. 首先如果python 是64位,安装32位的numpy ,Scipy,或者matplotlib 模块. 会出现很多问题. 比如当你 在python 导入 Numpy 时,导入 ...

  2. python_Opencv_使用Matplotlib模块

    使用Matplotlib模块 Matplotib 是python 的一个绘图库,里头有各种各样的绘图方法. 之后会陆续了解.先学习怎样用Matplotib 显示图像. 可以放大图像,保存图像. 安装M ...

  3. python 爬虫与数据可视化--matplotlib模块应用

    一.数据分析的目的(利用大数据量数据分析,帮助人们做出战略决策) 二.什么是matplotlib? matplotlib: 最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB ...

  4. Matplotlib模块:绘图和可视化

    一.简单介绍Matplotlib 1.Matplotlib是一个强大的Python绘图和数据可视化的工具包 2.安装方法:pip install matplotlib 3.引用方法:import ma ...

  5. 为python安装matplotlib模块

    matplotlib是python中强大的画图模块. 首先确保已经安装python,然后用pip来安装matplotlib模块. 进入到cmd窗口下,执行python -m pip install - ...

  6. Python使用matplotlib模块绘制多条折线图、散点图

    用matplotlib模块 #!usr/bin/env python #encoding:utf-8 ''' __Author__:沂水寒城 功能:折线图.散点图测试 ''' import rando ...

  7. windows_64下python下载安装Numpy、Scipy、matplotlib模块

    本文应用的python3.6.3及其对应的Numpy.Scipy.matplotlib计算模块的cp36版本,其中Numpy是需要MKL版本的Numpy,这是后续安装Scipy的需要(本机系统win7 ...

  8. windows下python安装Numpy、Scipy、matplotlib模块(转载)

    python下载链接     Numpy下载链接 python中Numpy包的安装及使用 Numpy包的安装 准备工作 Python安装 pip安装 将pip所在的文件夹添加到环境变量path路径中 ...

  9. python 1: 解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题

    问题: 我在ubuntu14.04下用python中的matplotlib模块内的pyplot输出图片不能显示中文,怎么解决呢? 解决: 1.指定默认编码为UTF-8: 在python代码开头加入如下 ...

  10. 11-2 numpy/pandas/matplotlib模块

    目录 numpy模块 一维数组 二维数组 列表list和numpy的区别 获取多维数组的行和列 多维数组的索引 高级功能 多维数组的合并 通过函数方法创建多维数组 矩阵的运算 求最大值最小值 nump ...

随机推荐

  1. rpm操作

    --查找某个软件:abc rpm -qa |grep abc --删除某个软件:abc rpm -e --noscripts  abc

  2. 【Linux开发】linux设备驱动归纳总结(六):3.中断的上半部和下半部——工作队列

    linux设备驱动归纳总结(六):3.中断的上半部和下半部--工作队列 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  3. java追加文件

    public class AppendToFile { /** * A方法追加文件:使用RandomAccessFile */ public static void appendMethodA(Str ...

  4. .Net Core 3.0使用Grpc进行远程过程调用

    因为.Net Core3.0已经把Grpc作为一等臣民了,作为爱好新技术的我,当然要尝鲜体验一下了,当然感觉是Grpc作为跨语言的产品做的相当好喽,比起Dubbo这种的,优势和劣势还是比较明显的. 我 ...

  5. 如何用纯 CSS 创作出平滑的层叠海浪特效

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/JvmBdE 可交互视频教 ...

  6. Android开发build出现java.lang.NumberFormatException: For input string: "tle 0x7f0800aa"错误的解决方案

    查看异常栈没有发现项目代码的问题,因为问题是出现在layout文件中. 全局查找tle这个,发现在某个layout文件中title一词被变成ti tle了,结果Android就xjb报错了. 参考

  7. Vue开发——实现吸顶效果

    因为项目需求,最近开始转到微信公众号开发,接触到了Vue框架,这个效果的实现虽说是基于Vue框架下实现的,但是同样也可以借鉴到其他地方,原理都是一样的. 进入正题,先看下效果图: 其实js做这个效果还 ...

  8. docker 网络 实现

    最近在学习docker网络相关的知识,关于网络这块儿记下来,以便review dokcer安装完成之后默认提供三种网络  bridge host none  docker默认使用bridge brid ...

  9. XAMPP环境搭建及同类推荐

    一.什么是xampp XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包.这个软件包原来的名字是 LAMPP,但是为了避免误解,最新的几个版本就改名为 XAMPP ...

  10. 初识linux内核漏洞利用

    0x00 简介 之前只接触过应用层的漏洞利用, 这次第一次接触到内核层次的,小结一下. 0x01 概况 这次接触到的,是吾爱破解挑战赛里的一个题,给了一个有问题的驱动程序,要求在ubuntu 14.0 ...