快报:matplotlib基本图形绘制操作实例
目录
matplotlib1.折线图2.散点图3.条形图4.直方图matplotlib
matplotlib是最流行的python底层绘图库,接下来就由小编为大家介绍一些关于matplotlib的一些基本图形的绘制操作。这些操作可以将你的数据更加直观的呈现在你的面前。
首先要使用Import导入pyplot库并设置一个别名plt
from matplotlib import pyplot as plt
1.折线图
以下实例绘制气温曲线。(气温是依靠numpy中随机数产生的,因此要导入numpy)
(资料图片仅供参考)
import numpy as np import random a = [np.random.randint(20, 35) for i in range(120)] x = np.arange(0, 120) fig = plt.figure(figsize=(20, 8), dpi=80) # 设置图形大小和图形分辨率 plt.plot(x, a) #调用plot绘制图形 将x轴坐标和对应的y轴的点传入 # 调整x轴的刻度 _x = list(x) _xtick_labels = ["10点{}分".format(i) for i in range(60)] _xtick_labels += ["11点{}分".format(i) for i in range(60)] plt.xticks(_x[::3], _xtick_labels[::3], rotation=45) # rotation表示x轴标签旋转度数 # 添加描述信息 plt.xlabel("时间") plt.ylabel("温度 单位(C)") plt.title("10点-12点每分钟的气温变化") plt.show()
运行后发现中文字体无法显示。
这是因为matplotlib在绘制过程中无法显示中文,需要自己设置。
plt.rcParams["font.sans-serif"] = ["YouYuan"] plt.rcParams["axes.unicode_minus"] = False
加入这些代码后,中文就可以正常显示了
我们还可以加入网格 使图像y轴对应的值更加清楚
gitd()语法格式
matplotlib.pyplot.grid(b=None, which="major",axis="both)
b,which,axis 都是可选的操作
只要在代码末行添加以下一行代码即可
plt.grid()
2.散点图
(使用scatter方法绘制散点图)
from numpy as np import random a = np.random.randint(6, 25, size=(31,)) a = list(a) b = np.random.randint(12, 23, size=(31,)) # 设置字体 plt.rcParams["font.sans-serif"] = ["YouYuan"] plt.rcParams["axes.unicode_minus"] = False x1 = np.arange(1, 32) x2 = np.arange(40, 71) # 使用plt.scatter()绘制散点图 plt.scatter(x1, a, label="三月", s=20, color="orange") plt.scatter(x2, b, label="四月",s=10, color="red") # label表示不同颜色点的标签,s是点的大小,color设置点的颜色 # 设置x轴刻度 _x = list(x1) + list(x2) _xtick_labels = ["三月{}日".format(i) for i in x1] _xtick_labels += ["四月{}日".format(i-39) for i in x2] plt.xticks(_x[::3], _xtick_labels[::3], rotation=45) plt.xlabel("时间") plt.legend() plt.ylabel("温度") plt.show()
运行后
3.条形图
(使用bar或者barh方法绘制) (1).竖着的条形图
a = ["猫", "狗", "蛇", "大象", "兔子", "马", "驴", "斑马", "猎豹", "豺狼"] b = [32.4, 23.3, 232, 2423, 232, 2332, 123, 132, 213, 132] _x = list(range(len(a))) plt.rcParams["font.sans-serif"] = ["YouYuan"] plt.rcParams["axes.unicode_minus"] = False # 设置图形大小 plt.figure(figsize=(20, 8), dpi=80) # 竖着的条形图 使用bar函数 # width表示柱形宽距 plt.bar(_x, b, width=0.3) plt.xticks(_x, a) plt.xlabel("动物种类") plt.ylabel("动物数量") plt.show()
(2).横着的条形图
a = ["猫", "狗", "蛇", "大象", "兔子", "马", "驴", "斑马", "猎豹", "豺狼"] b = [32.4, 23.3, 232, 2423, 232, 2332, 123, 132, 213, 132] _x = list(range(len(a))) plt.rcParams["font.sans-serif"] = ["YouYuan"] plt.rcParams["axes.unicode_minus"] = False # 设置图形大小 plt.figure(figsize=(20, 15), dpi=80) # 横着的条形图 使用barh函数 注意柱形宽度要使用height plt.barh(_x, b, height=0.3, color="orange") plt.yticks(_x, a) plt.ylabel("动物种类") plt.xlabel("动物数量") # alpha可以调节网格颜色深浅 plt.grid(alpha=0.3) plt.show()
4.直方图
(使用hist方法)
在传入数据之后往往要以以下方式分组
组数:将数据分组 当数据在100个之内 一般分为5-12组
组距: 每个小组端点的距离
组数 = 极差/组距 = (max() - min()) or numpy.plp()// bin_width
以下案例为电影时长分布直方图
a = np.random.randint(90, 150, size=(250,)) print(a) plt.figure(figsize=(20, 10), dpi=100) bin_width = 3 # 设置组距 num_bins = int((max(a) - min(a)) // bin_width) # 分组 plt.xticks(list(range(min(a), max(a) + bin_width, bin_width))) plt.hist(a, num_bins) # 传入需要统计的数据 以及组数 plt.show()
但以上案例是组距相同的情况
实际生活往往有许多组距不相同的情况
这时候往往用条形图来展现组距不相同的情况
a = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 60, 90] b = [5, 5, 5, 5, 5, 5, 5, 5, 5, 15, 30, 60] c = [836, 2737, 3723, 3926, 3596, 1438, 3273, 642, 824, 613, 215, 47] plt.figure(figsize=(20, 10), dpi=100) plt.bar(range(len(a)), c, width=1) _x = [i-0.5 for i in range(13)] _xtick_labels = a + [150] # + [150] 使得条形图能显示90,150之间的数据 plt.xticks(_x, _xtick_labels, ) plt.grid(alpha=0.3) plt.show()
以上就是matplotlib基本图形绘制操作实例的详细内容,更多关于matplotlib 图形绘制的资料请关注脚本之家其它相关文章!
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?