欢迎来真孝善网,为您提供真孝善正能量书籍故事!

Python绘图入门:matplotlib基础教程

时间:11-22 民间故事 提交错误

从matplotlib 导入pyplot 作为plt

绘画

折线图

plt.plot(x, y)

散点图

plt.scatter(x, y)

条形图

plt.bar(x, y, 宽度=0.2, 颜色="橙色")

直方图

bin_width=3#定义组距离num_bins=int(max(a) - min(a))/bin_width#组数plt.hist(a, num_bins)#绘制显示图案

plot.show()小例子2.1from matplotlib import pyplot as plt

x=范围(2, 26, 2)

y=[12, 13, 15, 17, 19, 20, 23, 20, 16, 13, 10, 9]

plt.plot(x, y)

plt.show()[图片上传失败.(image-c30227-1564367650708)]

用情节绘图非常简单。点位置是与对应的x和y具有相同索引的坐标位置。在示例中,它是(2, 12)、(4, 13)、(6, 15)、(8, 17)……

3、设置图像大小

Fig=plt.figure(figsize=(20, 8), dpi=80) 这样设置的图像为(20*80)*(8*80)像素,即1600640像素

4、调整x轴或y轴的刻度分布

plt.xticks (x)设置刻度,x表示刻度对应的标记串,参数rotation表示标记串的旋转角度。 x_x 具有相同的长度并且彼此对应。当_x 缺失时,轴标签显示比例。小例子4.1从matplotlib 导入pyplot as plt

x=范围(2, 26, 2)

y=[12, 13, 15, 17, 19, 20, 23, 20, 16, 13, 10, 9]

_x=["{}:00".format(i) for i in x]

plt.xticks(x, _x, 旋转=45)

plt.plot(x, y)

plt.show()[图片上传失败.(image-510d24-1564367650708)]

如果我们希望x轴尺度更稀疏,我们可以这样做:

plt.xticks(x[:2], _x[:2],rotation=45) 取步长为2。注意x和_x参数一一对应,结果为:

[图片上传失败.(image-e12122-1564367650708)]

就是这样!不过,我们也会发现一个小问题。我们的_x字符标签中的汉字“时”无法正常显示。这是因为matplotlib默认不支持中文字符。中文显示方法请阅读下文。

5、设置中文显示

matplotlib (windows/linux/mac)下的font_manager解决from matplotlib import font_manager import font_manager module my_font=font_manger.FontProperties(fname="/System/Library/Fonts/PingFang.ttc") 实例化FontProperties,其中参数fname="字体目录":Mac os下系统字体目录为:/System/Library/Fonts/Linux下系统字体目录为:/usr/share/fonts Windows下系统字体目录为:C:WINDOWSFonts 的当然,我们也可以直接将字体文件放在工作空间目录下使用,方便又通用。在需要使用中文的函数中添加参数fontproperties=my_font,如:plt.xticks(x,_x,rotation=45,fontproperties=my_font)。此外,还有一种特殊情况。图例函数lengend()中,需要添加参数prop=my_font小例子5.1from matplotlib import pyplot as plt

从matplotlib 导入font_manager

#实例化字体属性

my_font=font_manager.FontProperties(fname="/System/Library/Fonts/PingFang.ttc")

x=范围(2, 26, 2)

y=[12, 13, 15, 17, 19, 20, 23, 20, 16, 13, 10, 9]

_x=["{}:00".format(i) for i in x]

plt.xticks(x, _x, 旋转=45, fontproperties=my_font)

plt.plot(x, y)

plt.show()[图片上传失败.(image-24a157-1564367650708)]

6、为轴添加描述信息

plt.xlabel("time", fontproperties=my_font)#设置x轴的标签

plt.ylabel("温度", fontproperties=my_font)#设置y轴的标签

plt.title("2点到24点温度变化", fontproperties=my_font)#设置图片标题

小例5.1中添加上述两段代码后,图像显示如下:

[图片上传失败.(image-358c9d-1564367650708)]

7、自定义绘制图形的风格

plt.plot(x, y, 颜色="r", 线型="--", 线宽=5, alpha=0.5)

color="r"#线条颜色

linestyle="--"#线条样式

linewidth=5#线宽

alpha=0.5#透明度

颜色字符颜色样式字符linestyler 红色实线g 绿色— 虚线虚线b 蓝色-。虚线w 白色: 虚线"" 留空c 青色m 品红色y 黄色k 黑色00ff0016 十六进制0.8 灰度值字符串:010 -1010 当我们需要比较多个图形时,我们会在一张图像中绘制多个图形。为了更清楚地显示对比,我们需要为不同的图表添加不同的图例。

plt.plot(x, y, label="label")#在plt.plot中添加参数label="label" plt.legend(prop=my_font, loc="best")#参数prop=my_font定义汉字,参数loc 定义生成图例的位置。详细内容请参见matplotlib源码注释。小例子从matplotlib 导入pyplot as plt

从matplotlib 导入font_manager

my_font=font_manager.FontProperties(fname="/System/Library/Fonts/PingFang.ttc")

x=范围(2, 26, 2)

y_summer=[20, 21, 23, 24, 27, 30, 34, 30, 25, 23, 21, 19]

y_spring=[12, 13, 15, 17, 19, 20, 23, 20, 16, 13, 10, 9]

plt.xlabel("时间", fontproperties=my_font)

plt.ylabel("温度", fontproperties=my_font)

plt.title("春季和夏季2:00到24:00温度变化", fontproperties=my_font)

plt.plot(x, y_summer, label="summer", linestyle="-", alpha=0.7)

plt.plot(x, y_spring, label="spring", linestyle="--", alpha=0.7)

plt.legend(prop=my_font, loc="最佳")

plt.show()[图片上传失败.(image-c3c86-1564367650708)]

8、图例的使用

用折线的上升或下降来表示统计量的增加或减少的统计图表。

特点:可以显示数据的变化趋势,反映事物的变化。 (改变)

[图片上传失败.(image-bb01d9-1564367650708)]

plt.plot()绘图用于上述情况,下面不再详细描述。

9、折线图

使用两组数据形成多个坐标点,检查坐标点的分布,确定两个变量之间是否存在某种相关性或总结坐标点的分布模式。特点:判断变量之间是否存在定量相关趋势并显示异常值(分布规则)方法:plt.scatter(x, y)小例子10.1from matplotlib import pyplot as plt

从matplotlib 导入font_manager

my_font=font_manager.FontProperties(fname="/System/Library/Fonts/PingFang.ttc")

#x坐标

x_3=列表(范围(1, 32))

x_9=列表(范围(35, 66))

# x 轴标签

x_3_ticks=["三月{}日".format(i) for i in range(1, 32)]

x_9_ticks=["十月{}日".format(i) for i in range(1, 32)]

# y 轴坐标

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_9=[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 轴

x_ticks=x_3_ticks + x_9_ticks

x=x_3 + x_9

#y 轴

y=y_3 + y_9

#图像尺寸

图=plt.figure(figsize=(10, 4), dpi=80)

规模

plt.xticks(x[:3],x_ticks[:3],旋转=45,fontproperties=my_font)

描述

plt.xlabel("时间", fontproperties=my_font)

plt.ylabel("当日最高气温", fontproperties=my_font)

plt.title("北京3、10月日最高气温散点图", fontproperties=my_font)

# 绘制散点图

plt.scatter(x_3, y_3, label="三月")

plt.scatter(x_9, y_9, label="十月")

传奇

plt.legend(prop=my_font, loc="最佳")

plt.show()[图片上传失败.(image-b6f186-1564367650708)]

10、散点图

工作表的列或行中排列的数据可以绘制成条形图。特点:可以绘制连续的离散数据,并且您可以一目了然地看到每个数据的大小并比较数据之间的差异。方法:plt.bar(x, y, width=, color=)小例子11.1from matplotlib import pyplot as plt

从matplotlib 导入font_manager

my_font=font_manager.FontProperties(fname="/System/Library/Fonts/PingFang.ttc")

a=["战狼2"、"速度与激情8"、"功夫瑜伽"、"西游记"、"变形金刚5:最后的骑士"、"摔跤!爸爸",

《加勒比海盗:死无对证》、《金刚:骷髅岛》、《XX:归来》、《生化危机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]

x_=范围(len(a))

y_=b

# 图像大小

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

绘画

plt.bar(x_, y_, 宽度=0.3, 颜色="C")

标签

plt.xticks(x_, a, fontproperties=my_font, 旋转=45)

plt.xlabel("电影", fontproperties=my_font)

plt.ylabel("票房(亿)", fontproperties=my_font)

plt.title("票房前十名排名", fontproperties=my_font)

plt.show()[图片上传失败.(image-ad5d81-1564367650708)]

11、条形图

数据的分布由一系列不同高度的垂直条纹或线段表示。一般情况下,横轴代表数据范围,纵轴代表分布。特点:绘制连续数据并显示一组或多组数据的分布(统计): bin_width=3#设置组距离num_bins=int((max(a) - min(a))/bin_width)# 多少进行分组plt.hist(a, num_bins)#绘图,如果有参数normed=1,则按照频数分布进行绘制plt.xticks(list(range(min(a),max(a)))[:bin_width] ,rotation=45)#设置标签plt.grid(linestyle="-.", alpha=0.5)#显示网格小例子12.1

从matplotlib 导入pyplot 作为plt

从matplotlib 导入font_manager

my_font=font_manager.FontProperties(fname="/System/Library/Fonts/PingFang.ttc")

a=[131, 98, 125, 131, 124, 139, 131, 117, 128, 108, 135, 138, 131, 102, 107, 114, 119, 128, 121, 142,

127, 130, 124, 101, 110, 116, 117, 110, 128, 128, 115, 99, 136, 126, 134, 95, 138, 117, 111,78,

132、124、113、150、110、117、86、95、144、105、126、130,126、130、126、116、123、106、112、138、

123、86、101、99、136,123、117、119、105、137、123、128、125、104、109、134、125、127,105、120、

107, 129, 116, 108, 132, 103, 136, 118, 102, 120, 114,105, 115, 132, 145, 119, 121, 112, 139, 125,

138、109、132、134,156、106、117、127、144、139、139、119、140、83、110、102,123,107、143、115、136、

118、139、123、112、118、125、109、119、133,112、114、122、109、106、123、116、131、127、115、118、112、

135,115, 146, 137, 116, 103, 144, 83, 123, 111, 110, 111, 100, 154,136, 100, 118, 119, 133, 134, 106, 129,

126、110、111、109、141,120、117、106、149、122、122、110、118、127、121、114、125、126,114、140、103、130、

141、117、106、114、121、114、133、137、92,121、112、146、97、137、105、98、117、112、81、97、139、113、

134、106、144、110、137、137、111、104、117、100、111、101、110,105、129、137、112、120、113、133、112、83、

94, 146, 133, 101,131, 116, 111, 84, 137, 115, 122, 106, 144, 109, 123, 116, 111,111, 133, 150]

# 图像大小

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

#设置群组距离

箱宽度=3

num_bins=int((最大(a) - 最小(a))/bin_width)

#绘制,如果有参数`normed=1`,则按照频率分布绘制

plt.hist(a, num_bins)

#设置标签

plt.xticks(列表(范围(最小值(a),最大值(a)))[:bin_width],旋转=45)

#显示网格

plt.grid(linestyle="-.", alpha=0.5)

plt.show()[图片上传失败.(image-ad354f-1564367650708)]

补充:多张子图

图, ax=plt.subplots(2, 3, sharex="col", sharey="row")

对于范围(2): 内的i

关于Python绘图入门:matplotlib基础教程到此分享完毕,希望能帮助到您。

用户评论

半梦半醒i

哇,matplotlib真的很好用,用来可视化数据简直是太棒了!

    有19位网友表示赞同!

颓废i

我一直想学习使用 matplotlib,现在就来试试看吧!

    有17位网友表示赞同!

雨后彩虹

终于有时间好好研究一下 matplotlib 的基本使用方法。

    有5位网友表示赞同!

孤单*无名指

对入门matplotlib的教程超感兴趣,可以更直观地理解数据分析结果。

    有20位网友表示赞同!

灼痛

做数据可视化的时候,matplotlib 应该是必学的工具了吧?

    有7位网友表示赞同!

颜洛殇

学习了 matplotlib之后,我的数据报告一定能更漂亮!

    有12位网友表示赞同!

£烟消云散

matplotlib 可以用来画各种图表的类型吗?

    有18位网友表示赞同!

秘密

这篇文章讲解的matplotlib基本用法是不是很容易理解呢?

    有11位网友表示赞同!

熏染

之前用其他工具做数据可视化挺麻烦的,打算试试matplotlib。

    有14位网友表示赞同!

泪湿青衫

在python里面学习matplotlib真不错,上手的速度应该很快吧!

    有13位网友表示赞同!

巴黎盛开的樱花

matplotlib 的中文文档太赞了!讲解很清晰。

    有13位网友表示赞同!

猫腻

我已经开始使用matplotlib画图了,感觉很棒!

    有8位网友表示赞同!

無極卍盜

想要把数据分析结果展示出来,用matplotlib 更容易让人理解!

    有6位网友表示赞同!

残花为谁悲丶

这个标题很有吸引力,我迫不及待地想了解matplotlib的基本使用方法。

    有13位网友表示赞同!

屌国女农

学习了 matplotlib 后,我可以更好地呈现我的研究成果啊!

    有13位网友表示赞同!

闲肆

感觉matplotlib 是一个很强大且实用的工具!

    有6位网友表示赞同!

有你,很幸福

学习一下matplotlib的基础用法,就能提升我的数据分析能力了。

    有10位网友表示赞同!

她最好i

matplotlib 的绘图效果真的很好看!可以制作出非常有创意的图表。

    有17位网友表示赞同!

念初

有了matplotlib,我可以自己生成各种数据报告!超级棒!

    有7位网友表示赞同!

【Python绘图入门:matplotlib基础教程】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活