备战数学建模26 & 科研必备-Python数据可视化之matplotlib

Posted nuist__NJUPT

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了备战数学建模26 & 科研必备-Python数据可视化之matplotlib相关的知识,希望对你有一定的参考价值。

目录

一、绘制折线图

二、绘制散点图

三、绘制条形图


一、绘制折线图

matplotlib:最流行的python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建。

我们看一下使用matplotlib绘制折线图,具体如下:

python代码如下:


from matplotlib import pyplot as plt #导入pyplot包
import matplotlib
matplotlib.rc("font", family='YouYuan')
x = range(2, 26, 2)
y = [15, 13, 14.5, 17, 20, 25, 26, 26, 24, 22, 18, 15]

plt.xticks(range(min(x),max(x)+2,2)) #设置坐标刻度
plt.yticks(range(min(y),max(y)+2,1))
plt.plot(x,y)
plt.xlabel("时间:单位(hours)")
plt.ylabel("温度:单位(℃)")
plt.title("每间隔两小时的气温变化图")
plt.show()


绘制的折线图如下所示:

python代码如下:

from matplotlib import pyplot as plt #导入pyplot包
import random
import matplotlib
matplotlib.rc("font",family='YouYuan')

x = range(0, 120)
y = [random.randint(20,35) for i in range(120)]
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
#调整x轴的刻度
_xtick_labels = ["10点分".format(i) for i in range(60)]
_xtick_labels += ["11点分".format(i) for i in range(60)]

#取步长,数字和字符串一一对应,数据的长度不一样
plt.xticks(list(x)[::3],_xtick_labels[::3],rotation=45)
plt.xlabel("时间:单位(minutes)")
plt.ylabel("温度:单位(℃)")
plt.title("10点到12点每分钟气温的变化情况图")

plt.show()

绘制的折线图如下所示:

二、绘制散点图

绘制三月份和十月份每天最高气温的散点图,python代码如下:

from matplotlib import pyplot as plt #导入pyplot包
import matplotlib
matplotlib.rc("font", family='YouYuan')
y_3 = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]
y_10 = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,13,6]
x_3 = range(1,32)
x_10 = range(51,82)

#设置图形大小
plt.figure(figsize=(20,8),dpi=80)
plt.scatter(x_3,y_3,label="3月份")
plt.scatter(x_10,y_10,label="10月份")

#调整x轴的刻度
_x = list(x_3) + list(x_10)
_xtick_labels = ["3月日".format(i) for i in x_3]
_xtick_labels += ["10月日".format(i-50) for i in x_10]
plt.xticks(_x[::3],_xtick_labels[::3],rotation="45")

plt.xlabel("时间:单位(month)")
plt.ylabel("温度:单位(℃)")
plt.title("3月份和10月份每日气温的变化情况图")
plt.legend(loc = 'upper left')
plt.show()

绘制的散点图如下:

三、绘制条形图

我只用了前5个数据进行绘图,后面的数据没有使用,这个是横向的条形图。

这个竖直的条形图,如下所示:

横向条形图python代码如下所示:


from matplotlib import pyplot as plt #导入pyplot包
import matplotlib
matplotlib.rc("font", family='YouYuan')
a = ["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5"]
b = [56.01, 26.94, 17.53, 15.45, 12.96]

#设置图形大小
plt.figure(figsize=(20,8),dpi=80)

#绘制条形图
plt.barh(range(len(a)), b, height=0.3, color="orange")
#设置字符串到y轴
plt.yticks(range(len(a)), a)
plt.xlabel("电影票房:单位(亿元)")
plt.ylabel("电影名称")
plt.title("电影票房条形图")
plt.show()


竖直条形图的python代码如下:

from matplotlib import pyplot as plt #导入pyplot包
import matplotlib
matplotlib.rc("font", family='YouYuan')
a = ["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5"]
b = [56.01, 26.94, 17.53, 15.45, 12.96]

#设置图形大小
plt.figure(figsize=(20,8),dpi=80)

#绘制条形图
plt.bar(range(len(a)), b, width=0.2, color="orange")
#设置字符串到y轴
plt.xticks(range(len(a)), a)
plt.xlabel("电影票房:单位(亿元)")
plt.ylabel("电影名称")
plt.title("电影票房条形图")
plt.show()

绘制多次条形图,具体如下,下面几部电影,每部电影的天票房信息如下,绘制条形图:

 python代码如下所示:
 

from matplotlib import pyplot as plt #导入pyplot包
import matplotlib
matplotlib.rc("font", family='YouYuan')
a = ["星球崛起3:终极之战","敦刻尔克","蜘蛛侠:英雄归来","战狼2"]
b_16 = [15746, 312, 4497, 319]
b_15 = [12357, 156, 2045, 168]
b_14 = [2358, 399, 2358, 362]

#设置图形大小
plt.figure(figsize=(20,8),dpi=80)

x_14 = range(len(a))
x_15 = [i+0.2 for i in x_14]
x_16 = [i+0.2 for i in x_15]
#绘制条形图
plt.bar(range(len(a)), b_14, width=0.2, label = "9月14日")
plt.bar(x_15, b_15, width=0.2, label = "9月15日")
plt.bar(x_16, b_16, width=0.2, label = "9月16日")

plt.xticks(x_15, a)
plt.legend()

plt.ylabel("电影票房:单位(亿元)")
plt.xlabel("电影名称")
plt.title("电影票房条形图")
plt.show()

绘制的条形图如下所示:

开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系

以上是关于备战数学建模26 & 科研必备-Python数据可视化之matplotlib的主要内容,如果未能解决你的问题,请参考以下文章

备战数学建模27 & 科研必备 -Python之数值型数据处理numpy

备战数学建模43-决策树&随机森林&Logistic模型(攻坚站7)

备战数学建模43-决策树&随机森林&Logistic模型(攻坚站7)

备战数学建模16-相关性分析SPSS&MATLAB

2021最全数学建模必备资料

备战美赛 | 美赛各题目常用算法程序汇总&参考代码