目录
一、绘制折线图
二、绘制散点图
三、绘制条形图
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()
绘制的条形图如下所示: