Matplotlib数据可视化——综合练习一(基础图表、饼图、直方图、柱状图、极坐标图、散点图的绘制)
2020-06-03 05:47
1061 查看
基础图表、饼图、直方图、柱状图、极坐标图、散点图的绘制
- 前言
- 题一:利用matplotlib库文件,画图函数y=x^2的图形。结合图中的颜色标出横纵坐标。
- 题二: 利用matplotlib库文件,画图函数y=x^2的图形。结合图中的颜色标出横纵坐标。
- 题三: 利用matplotlib库文件,画图函数y=cos(2πx)的图形。结合图中的颜色标出横纵坐标。
- 题四:利用matplotlib库文件,画出如下子图的图形。
- 题五:利用matplotlib库文件,结合子图的画法,把下面三个函数画在同一个图中。并标出横纵坐标及对应的颜色。
- 题六:利用matplotlib库文件,结合阶梯图函数plt.step()。画出函数y=sin(x)的图形。
- 题七:1. 利用matplotlib库文件,画出如下的饼图。
- 题八:利用matplotlib库文件,画出如下的饼图(explod=0.5)
- 题九:利用matplotlib库文件,画出如下的直方图。
- 题十:利用matplotlib库文件,画出如下的直方图。
- 题十一:利用matplotlib库文件,画出如下的直方图。
- 题十二:利用matplotlib库文件,画出如下的散点图。
- 题十三:利用matplotlib库文件,画出如下的散点图。
- 题十四:利用matplotlib库文件,画出如下的极坐标图。
- 题十五:利用matplotlib库文件,画出如下的极坐标图。
- 题十六:利用matplotlib库文件,画出如下的极坐标图。
- 题十七:利用matplotlib库文件,画出如下的点线图。
- 题十八:利用matplotlib库文件,画出如下的曲线图。
- 题十九:利用matplotlib库文件,画出如下的条形图。
- 题二十:利用matplotlib库文件,画出如下的直方图。
- 题二十一:利用matplotlib库文件,画出如下的饼图。
- 题二十二:利用matplotlib库文件,画出如下的子图
- 题二十三:利用matplotlib库文件,画出如下的直方图
- 题二十四:利用matplotlib库文件,画出如下的直方图(bin=30)
- 最后一题:完成词云图绘制
- 准备数据
- python代码
- 打印结果
前言
在练习之前,需要掌握的知识:
numpy Matplotlib pandas(不要求)
如果不熟悉可以查看我关于这方面的博客~~~~😎
题一:利用matplotlib库文件,画图函数y=x^2的图形。结合图中的颜色标出横纵坐标。
import numpy as np import matplotlib.pyplot as plt from pylab import mpl #解决中文显示问题 手动设置 mpl.rcParams['font.sans-serif']=['FangSong'] #设置x,y轴的数值 x = np.linspace(0,10,6) y = x**2 plt.xlabel("横轴:x").set_color('g') plt.ylabel("纵轴:y=x^2").set_color('r') plt.plot(x,y,'r--',linewidth=2) #显示图示 plt.legend() #显示图 plt.show()
题二: 利用matplotlib库文件,画图函数y=x^2的图形。结合图中的颜色标出横纵坐标。
import numpy as np import matplotlib.pyplot as plt from pylab import mpl #解决中文显示问题 手动设置 仿宋体 mpl.rcParams['font.sans-serif'] = ['FangSong'] #设置x,y的值 x = np.arange(0,10,0.3) y = x**2 plt.xlabel("横轴:x").set_color('g') plt.ylabel("纵轴:y=x^2").set_color('r') plt.xlim(0,10) #设置x轴的区间 plt.ylim(0,100) #设置y轴的区间 plt.xticks([0,2,4,6,8,10]) plt.yticks([0,20,40,60,80,100] plt.plot(x,y,"b>-",linewidth=2) #显示图示 plt.legend() #显示图 plt.show()
题三: 利用matplotlib库文件,画图函数y=cos(2πx)的图形。结合图中的颜色标出横纵坐标。
import matplotlib.pyplot as plt import numpy as np #定义函数实现y = f(x) =cos(2πx) def f(x): return np.cos(2*np.pi*x) a = np.arange(0.0,5.0,0.02) plt.plot(a,f(a),'b--') plt.xlabel("横轴:时间",fontproperties='Kaiti',fontsize=14,color='g') plt.ylabel("纵轴:振幅",fontproperties='SimHei',fontsize=14,color='k') plt.title("正玄波实例 y = cos(2πx)",fontproperties='SimHei',fontsize=18,color='k') plt.annotate(r'$\mu=100$',xy=(2,1),fontproperties='SimHei',fontsize=12,color='red') plt.grid(True) plt.axis([-1,6,-2,2]) pkt.show()
题四:利用matplotlib库文件,画出如下子图的图形。
import matplotlib.pyplot as plt import matplotlib.gridspec as gridspec gs = gridspec.GridSpec(3,3) ax1 = plt.subplot(gs[0,:]) ax2 = plt.subplot(gs[1,:-1]) ax3 = plt.subplot(gs[1:,-1]) ax4 = plt.subplot(gs[2,0]) ax5 = plt.subplot(gs[2,1]) plt.show()
题五:利用matplotlib库文件,结合子图的画法,把下面三个函数画在同一个图中。并标出横纵坐标及对应的颜色。
import matplotlib.pyplot as plt import matplotlib.gridspec as gridspec import numpy as np from pylab import mpl mpl.rcParams['font.sans-serif'] = ['FangSong'] mpl.rcParams['axes.unicode_minus'] = False gs = gridspec.GridSpec(2,2) #防止画图时重叠 plt.subplots_adjust(hspace=1) #绘图一 ax1 = plt.subplot(gs[0,0]) x = np.arange(0,10,0.3) y = x*x plt.xlabel("横轴:x").set_color('g') plt.ylabel("纵轴:y=x^2").set_color('r') plt.plot(x,y,"b>-",linewidth=2) #绘图二 ax2 = plt.subplot(gs[0,1]) def g(x): return np.cos(2*np.pi*x) a = np.arange(0,4,0.02) plt.plot(a,g(a),'r--') x = [0,2,4] y = np.linspace(-1,1,3) plt.xticks(x) plt.yticks(y) #绘图三 ax3 = plt.subplot(gs[1,:]) def f(x): return np.cos(2*np.pi*x) a = np.arange(0.0,5.0,0.02) plt.plot(a,f(a),"b--") plt.xlabel('横轴:时间',fontproperties='Kaiti',fontsize=14,color='g') plt.ylabel('纵轴:振幅',fontproperties='SimHei',fontsize=14,color='k') plt.title('正玄波实例 y=cos(2πx)',fontproperties='SimHei',fontsize=18,color='k') plt.grid(True) plt.axis([-1,6,-2,2]) plt.annotate(r'$\mu=100$',xy=(2,1),fontproperties='SimHei',fontsize=12,color='red') plt.legend() plt.show()
题六:利用matplotlib库文件,结合阶梯图函数plt.step()。画出函数y=sin(x)的图形。
import matplotlib.pyplot as plt import numpy as np from pylab import mpl mpl.rcParams['font.sans-serif'] = ['FangSong'] mpl.rcParams['axes.unicode_minus'] = False x = np.arange(1,11) y = np.sin(x) plt.step(x,y,'r') plt.show()
题七:1. 利用matplotlib库文件,画出如下的饼图。
import matplotlib.pyplot as plt from pylab import mpl mpl.rcParams['font.sans-serif'] = ['FangSong'] mpl.rcParams['axes.unicode_minus'] = False labels = ["A班","B班","C班","D班"] sizes = [10,30,45,15] #如果是要没有阴影部分就将 shadow = False patch,text1,text2 = plt.pie(sizes,labels = labels,autopct='%1.1f%%',shadow=True,startangle=90) plt.title("班级名称") plt.axis('equal') plt.legend() plt.show()
题八:利用matplotlib库文件,画出如下的饼图(explod=0.5)
import matplotlib.pyplot as plt from pylab import mpl mpl.rcParams['font.sans-serif'] = ['FangSong'] mpl.rcParams['axes.unicode_minus'] = False labels = ["A班","B班","C班","D班"] sizes = [10,30,45,15] explode = (0,0,0.5,0) #如果是要没有阴影部分就将 shadow = False patch,text1,text2 = plt.pie(sizes,labels = labels,explode=explode,autopct='%1.1f%%',shadow=True,startangle=90) plt.title("班级名称") plt.axis('equal') plt.legend() plt.show()
题九:利用matplotlib库文件,画出如下的直方图。
import matplotlib.pyplot as plt from pylab import mpl mpl.rcParams['font.sans-serif'] = ['FangSong'] mpl.rcParams['axes.unicode_minus'] = False xlab = ["A班","B班","C班","D班"] list = [5,7,4,3] x = range(len(list)) bar = plt.bar(left=x,height=list,width=0.8,color=['r','k','g','b'],alpha=0.8) plt.ylim(0,7.5) plt.xticks(x,xlab) #因为网格线一直没有被覆盖 所以加了这一条语句 plt.style.use('ggplot') plt.rc('axes',axisbelow=True) plt.grid(ls='--') plt.legend() plt.show()
题十:利用matplotlib库文件,画出如下的直方图。
import matplotlib.pyplot as plt from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] mpl.rcParams['axes.unicode_minus'] = False sizes = [38,40,45.4,38.9,33.34] plt.barh(range(5),sizes,height=0.7,color='steelblue',alpha=0.8) plt.yticks(range(5),['亚马逊','当当网','中国图书网','京东','天猫']) plt.xlim(30,47) plt.xlabel("价格") plt.title("不同平台图书价格") for x,y in enumerate(sizes): plt.text(y+0.2,x-0.1,'%s' % y) plt.show()
题十一:利用matplotlib库文件,画出如下的直方图。
import matplotlib.pyplot as plt from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] mpl.rcParams['axes.unicode_minus'] = False xlab = ['2014','2015','2016','2017'] list1 = [20,30,15,35] list2 = [15,30,40,20] x = range(len(list1)) bar1 = plt.bar(left=x, height=list1, width=0.45, alpha=0.8, color='red', label="一部门") bar2 = plt.bar(left=x, height=list2, width=0.45, color='green', label="二部门", bottom=list1) plt.ylim(0, 80) plt.ylabel("数量") plt.xticks(x, xlab) plt.xlabel("年份") plt.title("某某公司") plt.legend() plt.show()
题十二:利用matplotlib库文件,画出如下的散点图。
import matplotlib.pyplot as plt import numpy as np from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] mpl.rcParams['axes.unicode_minus'] = False plt.scatter(np.random.randn(1000), np.random.randn(1000), marker = '*') plt.show()
题十三:利用matplotlib库文件,画出如下的散点图。
import matplotlib.pyplot as plt import numpy as np from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] mpl.rcParams['axes.unicode_minus'] = False plt.xlabel("横轴:X",color = "g") plt.ylabel("纵轴:Y",color = "r") plt.scatter(np.random.randn(1000), np.random.randn(1000), marker = 'o') plt.title("散点图",color = "b") plt.show()
题十四:利用matplotlib库文件,画出如下的极坐标图。
import matplotlib.pyplot as plt from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] mpl.rcParams['axes.unicode_minus'] = False ax = plt.subplot(111, projection='polar') plt.show()
题十五:利用matplotlib库文件,画出如下的极坐标图。
import matplotlib.pyplot as plt import numpy as np from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] mpl.rcParams['axes.unicode_minus'] = False N = 20 thera = np.linspace(0.0, 2 * np.pi, N, endpoint = False) radis = 10 * np.random.rand(N) width = np.pi / 4 * np.random.rand(N) ax = plt.subplot(111, projection = 'polar') bars = ax.bar(thera, radis, width = width, bottom = 0.0) for r, bar in zip(radis, bars): bar.set_facecolor(plt.cm.viridis(r / 10.)) bar.set_alpha(0.5) plt.show()
题十六:利用matplotlib库文件,画出如下的极坐标图。
import matplotlib.pyplot as plt import numpy as np from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] mpl.rcParams['axes.unicode_minus'] = False n = 100 radis = 2 * np.random.rand(n) theta = 2 * np.pi * np.random.rand(n) area = 200 * radis**2 colors = theta ax = plt.subplot(111, projection='polar') axs = ax.scatter(theta, radis, c=colors, s=area, cmap='hsv', alpha=0.75) plt.show()
题十七:利用matplotlib库文件,画出如下的点线图。
import matplotlib.pyplot as plt import numpy as np from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] mpl.rcParams['axes.unicode_minus'] = False x = np.arange(10) y = 2*x+5 plt.plot(x,y,"o") plt.xlim(1,10) plt.ylim(5,25) plt.yticks([5,10,15,20,25]) plt.xlabel("x axis caption") plt.ylabel("y axis caption") plt.title("Matplotlib demo") plt.show()
题十八:利用matplotlib库文件,画出如下的曲线图。
import matplotlib.pyplot as plt import numpy as np from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] mpl.rcParams['axes.unicode_minus'] = False x = np.arange(0,10,0.1) ysin = np.sin(x) ycos = np.cos(x) plt.subplot(2,1,1) #画图时增加子图间距 防止重叠 plt.subplots_adjust(hspace=0.5) plt.xlim(0,10) plt.ylim(-1.0,1.0) plt.plot(x,ysin,"-") plt.title("Sine") plt.subplot(2,1,2) plt.xlim(0,10) plt.ylim(-1.0,1.0) plt.plot(x,ycos,"-") plt.title("Cosine") plt.show()
题十九:利用matplotlib库文件,画出如下的条形图。
import matplotlib.pyplot as plt import numpy as np from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] mpl.rcParams['axes.unicode_minus'] = False x1 = [5,7,8,10] x2 = [6,9,11] y = np.arange(16) height1 = [12,0,16,6] height2 = [6,14,7] plt.bar(x1,height1) plt.bar(x2,height2,color="g") plt.xlabel("X axis") plt.ylabel("Y axis") plt.title("Bar graph") plt.show()
题二十:利用matplotlib库文件,画出如下的直方图。
import matplotlib.pyplot as plt from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] mpl.rcParams['axes.unicode_minus'] = False plt.xlim(0,100) plt.ylim(0,5) data = [0,10,15,20,25,30,35,40,44,48,52,56,60,70,100] plt.hist(data,bins=5,histtype='stepfilled',facecolor="b",alpha=0.75) plt.title("histogram") plt.show()
题二十一:利用matplotlib库文件,画出如下的饼图。
import matplotlib.pyplot as plt from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] mpl.rcParams['axes.unicode_minus'] = False labels = [u'娱乐',u'汽车',u'房屋',u'食物'] colors = ['silver','orange','dimgrey','tan'] sizes = [5,20,41,34] explode = [0.1,0.1,0.1,0.1] d,ax = plt.subplots() ax.pie(sizes,labels=labels,explode=explode,colors=colors,autopct='%1.0f%%',shadow=False,pctdistance=0.5,startangle=0,textprops={'fontsize':12,'color':'w'}) ax.axis('equal') plt.title("实际支出摘要",color='dimgrey') ax.legend(bbox_to_anchor=(0.1,-0.1),loc='lower left',frameon=False,ncol=4) plt.show()
题二十二:利用matplotlib库文件,画出如下的子图
import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.family'] = 'SimHei' plt.rcParams['font.size'] = 11 #图一 plt.subplot(211) #画图时增加子图间距 防止重叠 plt.subplots_adjust(hspace=1) x = np.arange(0, 5,0.02) y = np.cos(2*np.pi*x) * np.exp(-x) plt.plot(x,y,"b-") plt.xlim(-0.5,5) #设置x轴的区间 plt.ylim(-0.6,1.2) #设置y轴的区间 plt.xticks([0,1,2,3,4,5]) plt.yticks([-0.5,0.0,0.5,1.0]) plt.title("阻尼振动 vs 无阻尼振动") #设置x轴标签 plt.ylabel(r'$y=2\pi x/e^x$',fontproperties="SimHei",fontsize=10) #设置y轴标签 plt.title("阻尼振动 VS 无阻尼振动") #图二: plt.subplot(2,1,2) a = np.arange(0.0,2.0,0.04) plt.plot(a,np.cos(2*np.pi*a),'r.-') plt.xlabel("时间(s)",fontproperties='SimHei',fontsize=10) plt.ylabel(r'$y=2\pi x$',fontproperties='SimHei',fontsize=10) plt.axis([0.00,2.00,-1.0,1.0]) plt.show()
题二十三:利用matplotlib库文件,画出如下的直方图
import matplotlib.pyplot as plt from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] mpl.rcParams['axes.unicode_minus'] = False xlab = ['北京市', '上海市', '天津', '重庆市'] list = [12406, 13908, 8386, 9143] x = range(len(list)) bar = plt.bar(left=x, height=list, width=0.8, color = 'g', alpha=0.8) plt.ylim(0, 14500) plt.xticks(x, xlab) for x,y in enumerate(list): plt.text(x , y,'%s' % y, ha='center', va= 'bottom',fontsize=11) plt.title("GDP大比拼") plt.legend() plt.show()
题二十四:利用matplotlib库文件,画出如下的直方图(bin=30)
import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.family']='SimHei' plt.rcParams['font.size']=14 # 直方图 mu = 100 sigma = 20 x = np.random.normal(mu,sigma,size=100) # 均值和标准差 plt.hist(x,bins=30,normed=1,color='g',histtype='stepfilled',alpha=0.75) plt.ylim(0.000,0.035) plt.title('直方图') plt.show()
最后一题:完成词云图绘制
- 安装jieba中文库
- 安装wordcloud模块
pip install jieba pip insall wordcloud
准备数据
爬取某学校网站近两年的新闻标题
python代码
import matplotlib.pyplot as plt import jieba from wordcloud import WordCloud # 打开文本 text = open('2019-2020新闻标题.txt').read() # 中文分词 text = ' '.join(jieba.cut(text)) wc = WordCloud(font_path='C:/Windows/Fontsfangzhengsongke.ttf', width=1000, height=800, mode='RGBA',background_color=None).generate(text) # 显示词云 plt.imshow(wc, interpolation='bilinear') plt.axis('off') plt.show() # 保存到文件 wc.to_file('wordcloud.png')
打印结果
相关文章推荐
- Python数据分析与应用 第三章 Matplotlib数据可视化基础 (散点图) 中
- Python数据可视化,Matplotlib绘制“散点图”的两种方法!
- Python数据分析与应用 第三章 Matplotlib数据可视化基础 (直方图,饼图,箱线图) 下
- matplotlib模块数据可视化-绘制柱状图
- Python进阶(三十八)-数据可视化の利用matplotlib 进行折线图,直方图和饼图的绘制
- 数据分析基础之matplotlib绘制散点图
- Python数据可视化:Matplotlib 直方图、箱线图、条形图、热图、折线图、散点图。。。
- 数据分析第一节:matplotlib 的使用方法------折线图,散点图,直方图,条形图的绘制
- [Python数据可视化基础]matplotlib、pygal库、CSV模块、json、绘制世界人口地图、API
- 基于matplotlib的数据可视化 - 柱状图bar
- matplotlib —— 绘制条形图,直方图,散点图和饼图
- python matplotlib从文件中读取数据绘制散点图
- Python数据可视化之Matplotlib实现各种图表
- Python数据可视化教程之Matplotlib实现各种图表实例
- python 数据可视化 matplotlib学习一:绘制简单的折线图
- Python数据分析与应用--Matplotlib数据可视化基础之学习笔记
- matplotlib第四次记录 绘制散点图,条形图,直方图
- Python数据可视化笔记--Matplotlib基础
- python matplotlib 用极坐标绘制球员能力图(综合练习)
- 数据可视化 (一) matplotlib.pyplot基础知识