python绘图

Matplotlib学习

一、导入matplotlib

from matplotlib import pyplot as plt

x = range(2,26,2)
y = [15,13,14.5,17,20,25,26,26,27,22,18,15]

plt.plot(x,y)
plt.show()

在这里插入图片描述

二、调整x轴刻度

设置图片大小

fig = plt.figure(figsize = (20,8),dpi = 80)

figure图形图标,指当前绘制的图

figsize 图片大小,一个元组,(20,8)指宽20,高8

dpi 每英寸上点的个数,在图片模糊时可以传入dpi,让图像更清晰

在这里插入图片描述

设置x轴刻度

plt.xticks(x)
plt.yticks(range(min(y),max(y)+1))
#plt.xticks(range(2,25))
#plt.xticks(x)

在这里插入图片描述

plt设置中文

import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']   #设置简黑字体
mpl.rcParams['axes.unicode_minus'] = False # 解决‘-’bug
_x = x
_xtick_labels = ["学{}".format(i) for i in _x]
plt.xticks(_x,_xtick_labels,rotation=45)  #rotation顺时针旋转的度数

在这里插入图片描述

添加描述信息

plt.xlabel("名称");
plt.ylabel("温度");
plt.title("温度变化图");

保存方法

plt.savefig("./g_.png")

三、绘制散点图

from matplotlib import pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']   #设置简黑字体
mpl.rcParams['axes.unicode_minus'] = False # 解决‘-’bug


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=(15,6),dpi=60)

#使用scatter方法绘制散点图
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.legend(loc="upper left")
#添加描述信息
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("标题")
#展示
plt.show()

在这里插入图片描述

四、绘制条形图

from matplotlib import pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']   #设置简黑字体
mpl.rcParams['axes.unicode_minus'] = False # 解决‘-’bug

a=["战狼2","速度与激情8","功夫瑜伽","西游伏魔篇","变形金刚5:\n最后的骑士",
   "摔跤吧!爸爸","加勒比海盗5:\n死无对证","金刚:\n骷髅岛","极限特工:\n终极回归",
   "生化危机6:\n终章","乘风破浪","神偷奶爸3","智取威虎山","大闹天竺","金刚狼3:\n殊死一战",
   "蜘蛛侠:\n英雄归来","悟空传","银河护卫队2","情圣","新木乃伊"]
b=[56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23]

#设置图形大小
plt.figure(figsize=(15,6),dpi=70)
#绘制条形图
plt.bar(range(len(a)),b,width=0.3)
#设置字符串到x轴
plt.xticks(range(len(a)),a,rotation=90)

plt.show()

在这里插入图片描述

from matplotlib import pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']   #设置简黑字体
mpl.rcParams['axes.unicode_minus'] = False # 解决‘-’bug

a=["战狼2","速度与激情8","功夫瑜伽","西游伏魔篇","变形金刚5:最后的骑士",
   "摔跤吧!爸爸","加勒比海盗5:死无对证","金刚:骷髅岛","极限特工:终极回归",
   "生化危机6:终章","乘风破浪","神偷奶爸3","智取威虎山","大闹天竺","金刚狼3:殊死一战",
   "蜘蛛侠:英雄归来","悟空传","银河护卫队2","情圣","新木乃伊"]
b=[56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23]

#设置图形大小
plt.figure(figsize=(15,6),dpi=70)
#绘制条形图
plt.barh(range(len(a)),b,height=0.3)
#设置字符串到y轴
plt.yticks(range(len(a)),a)

plt.grid(alpha=0.3)

plt.show()

在这里插入图片描述

绘制多次条形图

from matplotlib import pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']   #设置简黑字体
mpl.rcParams['axes.unicode_minus'] = False # 解决‘-’bug

a=["猩球崛起2:终极之战","敦刻尔克","蜘蛛侠:英雄归来","战狼2"]
b_16 = [15746,312,4497,319]
b_15 = [12357,156,2045,168]
b_14 = [2358,399,2358,362]

bar_width = 0.2
x_14 = list(range(len(a)))
x_15 = [i+0.2 for i in x_14]
x_16 = [i+0.2*2 for i in x_14]

#设置图形大小
plt.figure(figsize=(15,6),dpi=60)
plt.bar(range(len(a)),b_14,width=bar_width,label="9月14日")
plt.bar(x_15,b_15,width=bar_width,label="9月15日")
plt.bar(x_16,b_16,width=bar_width,label="9月16日")

#设置图例
plt.legend()
#设置x轴刻度
plt.xticks(x_15,a)

plt.show()

在这里插入图片描述

五、绘制直方图

plt.hist(x, bins=10, range=None, normed=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False)
  • x:指定要绘制直方图的数据。

  • bins:指定直方图条形的个数。

  • range:指定直方图数据的上下界,默认包含绘图数据的最大值和最小值。

  • normed:是否将直方图的频数转换成频率。

  • weights:该参数可为每一个数据点设置权重。

  • cumulative:是否需要计算累计频数或频率。

  • bottom:可以为直方图的每个条形添加基准线,默认为0。

  • histtype:指定直方图的类型,默认为bar,除此之外,还有barstacked、step和stepfilled

  • align:设置条形边界值的对齐方式,默认为mid,另外还有left和right

  • orientation:设置直方图的摆放方向,默认为垂直方向

  • rwidth:设置直方图条形的宽度

  • log:是否需要对绘图数据进行log变换

  • color:设置直方图的填充色

  • edgecolor:设置直方图边框色

  • label:设置直方图的标签,可通过legend展示其图例

有barstacked、step和stepfilled

  • align:设置条形边界值的对齐方式,默认为mid,另外还有left和right

  • orientation:设置直方图的摆放方向,默认为垂直方向

  • rwidth:设置直方图条形的宽度

  • log:是否需要对绘图数据进行log变换

  • color:设置直方图的填充色

  • edgecolor:设置直方图边框色

  • label:设置直方图的标签,可通过legend展示其图例

  • stacked:当有多个数据时,是否需要将直方图呈堆叠摆放,默认水平摆放

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值