栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python matplotlib绘图

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python matplotlib绘图

目录

绘制带有中文标签和图例的正弦和余弦曲线

 绘制散点图

 修改散点符号与大小

 修改颜色 

 绘制饼状图

在图例中显示公式

多个图像单独显示

绘制有描边和填充效果的柱状图

 使用雷达图展示学生成绩

绘制三维曲面

设置图例样式


绘制带有中文标签和图例的正弦和余弦曲线
import numpy as np
import pylab as pl
import matplotlib.font_manager as fm

# 必须使用关键参数fname,必须保证字体文件路径正确
myfont = fm.FontProperties(fname=r'C:WindowsFontsSTKAITI.ttf') #设置字体
t = np.arange(0.0, 2.0*np.pi, 0.01)        # 自变量取值范围
s = np.sin(t)                              # 计算正弦函数值
z = np.cos(t)                              # 计算余弦函数值
pl.plot(t, s, label='正弦')
pl.plot(t, z, label='余弦')
pl.xlabel('x-变量', fontproperties='STKAITI', fontsize=18)        # 设置x标签
pl.ylabel('y-正弦余弦函数值', fontproperties='simhei', fontsize=18)
pl.title('sin-cos函数图像', fontproperties='STLITI', fontsize=24)  # 标题
pl.legend(prop=myfont)                     # 设置图例
pl.show()

 绘制散点图
>>> a = np.arange(0, 2.0*np.pi, 0.1)
>>> b = np.cos(a)
>>> pl.scatter(a,b)
>>> pl.show()

 修改散点符号与大小
>>> pl.scatter(a, b, s=20, marker='+')
>>> pl.show()

 修改颜色 
修改颜色
>>> import matplotlib.pylab as pl
>>> import numpy as np
>>> x = np.random.random(100)
>>> y = np.random.random(100)
>>> pl.scatter(x, y, s=x*500, c=u'r', marker=u'*')
# s指大小,c指颜色,marker指符号形状
>>> pl.show()

 绘制饼状图
import numpy as np
import matplotlib.pyplot as plt

#The slices will be ordered and plotted counter-clockwise.
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
colors = ['yellowgreen', 'gold', '#FF0000', 'lightcoral']
explode = (0, 0.1, 0, 0.1)              # 使饼状图中第2片和第4片裂开

fig = plt.figure()
ax = fig.gca()
ax.pie(np.random.random(4), explode=explode, labels=labels, colors=colors,
       autopct='%1.1f%%', shadow=True, startangle=90,
       radius=0.25, center=(0, 0), frame=True)   # autopct设置饼内百分比的格式
ax.pie(np.random.random(4), explode=explode, labels=labels, colors=colors,
       autopct='%1.1f%%', shadow=True, startangle=45,
       radius=0.25, center=(1, 1), frame=True)
ax.pie(np.random.random(4), explode=explode, labels=labels, colors=colors,
       autopct='%1.1f%%', shadow=True, startangle=90,
       radius=0.25, center=(0, 1), frame=True)
ax.pie(np.random.random(4), explode=explode, labels=labels, colors=colors,
       autopct='%1.2f%%', shadow=False, startangle=135,
       radius=0.35, center=(1, 0), frame=True)
ax.set_xticks([0, 1])                    # 设置坐标轴刻度
ax.set_yticks([0, 1])

ax.set_xticklabels(["Sunny", "Cloudy"])  # 设置坐标轴刻度上的标签
ax.set_yticklabels(["Dry", "Rainy"])

ax.set_xlim((-0.5, 1.5))                 # 设置坐标轴跨度
ax.set_ylim((-0.5, 1.5))

ax.set_aspect('equal')                   # 设置纵横比相等

plt.show()

 python使用matplotlib绘制饼状图_辰小夏的博客-CSDN博客_matplotlib饼状图

python 数据可视化———绘制饼状图(bar)_a1227406795的博客-CSDN博客_python饼状图

在图例中显示公式
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 2*np.pi, 500)
y = np.sin(x)
z = np.cos(x*x)
plt.figure(figsize=(8,4))
# 标签前后加$将使用内嵌的LaTex引擎将其显示为公式
plt.plot(x,y,label='$sin(x)$',color='red',linewidth=2)   # 红色,2个像素宽
plt.plot(x,z,'b--',label='$cos(x^2)$')                   # 蓝色,虚线
plt.xlabel('Time(s)')
plt.ylabel('Volt')
plt.title('Sin and Cos figure using pyplot')
plt.ylim(-1.2,1.2)
plt.legend()                                              # 显示图例
plt.show()                                                # 显示绘图窗口

多个图像单独显示
import numpy as np
import matplotlib.pyplot as plt

x= np.linspace(0, 2*np.pi, 500)            # 创建自变量数组
y1 = np.sin(x)                             # 创建函数值数组
y2 = np.cos(x)
y3 = np.sin(x*x)
plt.figure(1)                              # 创建图形
ax1 = plt.subplot(2,2,1)                   # 第一行第一列图形
ax2 = plt.subplot(2,2,2)                   # 第一行第二列图形
ax3 = plt.subplot(212, facecolor='y')      # 第二行
plt.sca(ax1)                               # 选择ax1
plt.plot(x,y1,color='red')                 # 绘制红色曲线
plt.ylim(-1.2,1.2)                         # 限制y坐标轴范围
plt.sca(ax2)                               # 选择ax2
plt.plot(x,y2,'b--')                       # 绘制蓝色曲线
plt.ylim(-1.2,1.2)
plt.sca(ax3)                               # 选择ax3
plt.plot(x,y3,'g--')
plt.ylim(-1.2,1.2)
plt.show()

绘制有描边和填充效果的柱状图
import numpy as np
import matplotlib.pyplot as plt

#生成测试数据
x = np.linspace(0, 10, 11)
y = 11-x

#绘制柱状图
plt.bar(x, y,
        color='#772277',        #柱的颜色
        alpha=0.8,              #透明度
        edgecolor='blue',       #边框颜色
        linestyle='--',         #边框样式为虚线
        linewidth=1,            #边框线宽
        hatch='*')              #内部使用五角星填充

#为每个柱形添加文本标注
for xx, yy in zip(x,y):
    plt.text(xx-0.2, yy+0.1, '%2d' % yy)

#显示图形
plt.show()

 使用雷达图展示学生成绩
import numpy as np
import matplotlib.pyplot as plt

courses = ['C++', 'Python', '高数', '大学英语', '软件工程',
           '组成原理', '数字图像处理', '计算机图形学']
scores = [80, 95, 78, 85, 45, 65, 80, 60]
dataLength = len(scores)              # 数据长度

# angles数组把圆周等分为dataLength份
angles = np.linspace(0,               # 数组第一个数据
                     2*np.pi,         # 数组最后一个数据
                     dataLength,      # 数组中数据数量
                     endpoint=False)  # 不包含终点

scores.append(scores[0])
angles = np.append(angles, angles[0]) # 闭合

# 绘制雷达图
plt.polar(angles,             # 设置角度
          scores,             # 设置各角度上的数据
          'rv--',             # 设置颜色、线型和端点符号
          linewidth=2)        # 设置线宽

# 设置角度网格标签
plt.thetagrids(angles*180/np.pi,
               courses,
               fontproperties='simhei')

# 填充雷达图内部
plt.fill(angles,
         scores,
         facecolor='r',
         alpha=0.6)

plt.show()

报错的解决: 

Python绘制雷达图时遇到的坑的解决_Python-免费资源网

也可以加多一句

courses.append(courses[0])

 

 

绘制三维曲面

np.mgrid使用 - 码农教程

import numpy as np
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d

x,y = np.mgrid[-2:2:20j, -2:2:20j]        # 步长使用虚数
                                          # 虚部表示点的个数
                                          # 并且包含end
                                          
z = 50 * np.sin(x+y)                      # 测试数据
ax = plt.subplot(111, projection='3d')    # 三维图形
ax.plot_surface(x,y,z,rstride=2, cstride=1, cmap=plt.cm.Blues_r)
ax.set_xlabel('X')                        # 设置坐标轴标签
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()

import pylab as pl
import numpy as np
import mpl_toolkits.mplot3d
rho, theta = np.mgrid[0:1:40j, 0:2*np.pi:40j]
z = rho**2
x = rho*np.cos(theta)
y = rho*np.sin(theta)
ax = pl.subplot(111, projection='3d')
ax.plot_surface(x,y,z)
pl.show()

 

设置图例样式
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm

t = np.arange(0.0, 2*np.pi, 0.01)
s = np.sin(t)
z = np.cos(t)

plt.plot(t, s, label='正弦')
plt.plot(t, z, label='余弦')
plt.title('sin-cos函数图像',          #标题文本
           fontproperties='STLITI',  #标题字体
           fontsize=24)              #标题字号

myfont = fm.FontProperties(fname=r'C:WindowsFontsSTKAITI.ttf')
plt.legend(prop=myfont,               #图例字体
           title='Legend',            #图例标题
           loc='lower left',    #图例左下角位于图形(0.43,0.75)的位置
           bbox_to_anchor=(0.43,0.75),
           shadow=True,               #显示阴影
           facecolor='yellowgreen',   #图例背景色
           edgecolor='red',           #图例边框颜色
           ncol=2,                    #显示为两列
           markerfirst=False)         #图例文字在前,符号在后

plt.show()

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1029642.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号