本文介绍: (1)matplotlib导入。(2)matplotlib图形基本设置。(3)matplotlib折线图绘制。(4)matplotlib饼图的绘制。(5)matplotlib散点图的绘制。(6)matplotlib条形图的绘制。(7)matplotlib盒形图的绘制。(8)词云图的绘制。(1)学会matplotlib导入。(2)掌握matplotlib图形的基本设置。(3)掌握matplotlib折线图的绘制。(4)掌握matplotlib饼图的绘制。(5)掌握matplotli

实验四 matplotlib的基本使用

1.实验内容

(1)matplotlib导入
(2)matplotlib图形基本设置
(3)matplotlib折线图的绘制。
(4)matplotlib饼图的绘制。
(5)matplotlib散点图的绘制。
(6)matplotlib条形图的绘制。
(7)matplotlib盒形图的绘制。
(8)词云图的绘制。

2.目的要求

(1)学会matplotlib的导入。
(2)掌握matplotlib图形的基本设置
(3)掌握matplotlib折线图的绘制。
(4)掌握matplotlib饼图的绘制。
(5)掌握matplotlib散点图的绘制。
(6)掌握matplotlib条形图的绘制。
(7)掌握matplotlib盒形图的绘制。
(8)掌握词云图的绘制。

3.实验方法手段及其条件
(1)导入matplotlib、numpypandas解决中文乱码问题
%matplotlib inline 
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
#设置rc参数显示中文标题,设置字体为SimHei国标黑体显示中文
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False   #设置正常显示字符
#解决中文乱码问题
import importlib,sys
from matplotlib.font_manager import FontProperties
myfont=FontProperties(fname='./msyh/msyh.ttc')#mysh微软雅黑
plt.rcParams['axes.unicode_minus']=False #解决负号'_'显示方块问题
#设置rc参数显示中文标题
#设置字体为SimHei显示中文
plt.rcParams['font.sans-serif'] = 'SimHei'#国标黑体
#设置正常显示字符
plt.rcParams['axes.unicode_minus'] = False
(2)在同一坐标系中绘制多种曲线,通过样式宽度、颜色加以区分并设置标题、坐标轴名称

x = np.linspace(0, 3, 200) #产生从0到3均匀分布的200个浮点ndarray
三条线段颜色取值为蓝、绿、青,编写程序输出下图形:

plt.figure(figsize=(5,4))  #设置画布大小
x = np.linspace(0, 3, 200)
y1=x**1 # 青色实线
y2=x**2 # 蓝色短线段
y3=x**3 # 绿色点线

#标题,x轴说明,y轴说明
plt.title("My First Plot")  
plt.xlabel("x 轴")              
plt.ylabel("y 轴")          

#轴的刻度
xpoints = np.array([0, 3]) 
ypoints = np.array([0, 25])


#画线 plt.plot(x,y1,'c-',label='y = x$^{1}$')
#    plt.polt(x,函数,线型,图例)           
plt.plot(x,y1,'c-',label='y = x$^{1}$')
plt.plot(x,y2,'b--',label='y = x$^{2}$')
plt.plot(x,y3,'g:',label='y = x$^{3}$')
plt.legend(loc='upper left',frameon=False) 

#图像注解
plt.annotate(s='Here I am',xy=(1,1),xytext=(3.5,-0.5),
             weight='bold',color='black',
             arrowprops=dict(arrowstyle='-|>',connectionstyle='arc3',color='red'),
             bbox=dict(boxstyle='round,pad=0.5', fc='yellow', ec='black',lw=1 ,alpha=0.4))

plt.show()
(3)将多幅子图绘制在同一画板

要求:编写程序将4幅子图绘制在同一画板,所有图形使用默认颜色,输出结果下图所示

#读入当前文件夹下的学生成绩文件scoresheet.xlsx
stuscore=pd.read_excel('data/scoresheet.xlsx',header=None,
                       names=['id','name','gender','english','math',
                        'ethnic theory','physics'] )
#stuscore  #显示文件内容
plt.figure(figsize=(11,7))  #设置画布大小
#用hsapcewspace调整图与图之间的行列间隙
plt.subplots_adjust(hspace=0.6,wspace=0.2)
mpl.rcParams['font.size'] = 8; mpl.rcParams['figure.figsize'] = (12,9) 
plt.rcParams['font.sans-serif'] = ['SimHei']; plt.rcParams['axes.unicode_minus'] = False  

#创建一个2行2列的拼图
plt.subplot(221)
#设置 x,y轴的刻度值
plt.xticks(np.arange(0,15,2));plt.yticks(np.arange(50,100,10))
#绘制 各科成绩的折线图
plt.plot(stuscore.english,label='english score');plt.plot(stuscore.math,label='math score')
plt.plot(stuscore['ethnic theory'],label='ethnic theory score');plt.plot(stuscore.physics,label='physics score')
#图例
plt.legend(loc=8,frameon=False,bbox_to_anchor=(0.5, -0.4)) 
#设置标题
plt.title("学生期末各科成绩折线图")

plt.subplot(222);plt.bar(stuscore['name'],stuscore['physics'],width = 0.8)
# x坐标轴标注的倾斜 rotation参数是度数
plt.xticks(rotation=50);plt.title("学生期末物理成绩条形图")

plt.subplot(223);plt.xticks(np.arange(64,80,2));plt.ylim(70,91);plt.scatter(stuscore['ethnic theory'],stuscore['physics'],25)
plt.title("学生民族理论和物理成绩散点图")

plt.subplot(224);plt.pie(stuscore['gender'].value_counts(),labels=['男','女'],autopct="%1.1f%%");plt.title("学生性别饼图")
plt.show()
(4)读入当前文件夹下的“sanguo.csv”,完成对《三国演义》小说的文档读取以及词云图片输出。输出结果如下图所示

import jieba 
from wordcloud import WordCloud #词云包
s=pd.read_csv('datasanguo.csv',encoding='utf-8')
s.head()#首行是列标签,每段成一行
mylist=s['三国演义']#指定用于制图的文本,也可以使用列表元组序列
word_list=[" ".join(jieba.cut(sentence)) for sentence in mylist]
new_text=' '.join(word_list) #将所有文本字符链接起来
wordcloud=WordCloud(font_path='./msyh/msyh.ttc', 
                    background_color="white",
                    width=2000,height=1000,
                    max_words=200).generate(new_text)
#wordcloud对象用于设置词云图的字体、背景颜色、最大词频数等。
plt.imshow(wordcloud)
plt.axis("off") #关闭显示坐标轴
plt.show()

原文地址:https://blog.csdn.net/weixin_56950033/article/details/128226855

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_12249.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注