matplotlib的简单基础

本文详细介绍了如何使用Matplotlib进行Python中的图像定制,包括设置图片大小、本地保存、添加描述、调整刻度、线条样式、特殊点标记以及版权保护。还涉及了字体设置、图例、散点图、条形图和直方图的创建方法。
摘要由CSDN通过智能技术生成

问题

1. 设置图片大小(想要一个高清无码大图)

2. 保存到本地

3. 描述信息,比如x轴和y轴表示什么,这个图表示什么

4.调整x或者y的刻度的间距

5.线条的样式(比如颜色,透明度等)

6. 标记出特殊的点(比如告诉别人最高点和最低点在哪里)

7.给图片添加一个水印(防伪,防止盗用)

设置图片大小

import matplotlib.pyplot as plt

important random

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

[#设置图片大小]

         -->figure图形图标的意思,在这里指的就是我们画的图

         -->通过实例化一个figure并且传递参数,能够在后台自动使用该figure实

          -->在图像模糊的时候可以传入dpi参数,让图片更加清晰

x = range(2,26,2)  --从2开始到25,步长为2

y = [15,13,14.5,17,20,25,26,26,24,22,18,15]

plt.plot(x,y)

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

           -->保存图片

           -->可以保存为svg这种矢量图格式,放大不会有锯齿

plt.show()

 

#设置x轴的刻度

plt.xticks(range(25,50))

plt.yticks(range(25,50))

X是小数(例如2 2.5 3 3.5)

_xtick_labels= [i/2 for i in range(4,49)] 

plt.xticks(_xtick_labels[::3])     --步长是3

plt.yticks(range(min(y),max(y)+1))

#调整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,_xtick_labels)

[可以用余数:xtick_labels=[f'{10+i//60 }:{(i % 60):02}' for i in _x]   更简单些]

#取步长,数字和字符串一一对应,数据的长度一样

plt.xticks(list(x)[::3],_xtick_labels[::3],rotation=90)

#rotaion旋转的度数

 

设置字体的方式(这里只说一种)

7d6a47bc2dc84ee0b5bcea2cba5842c8.jpg

 

 

import matplotlib.pyplot as plt

important random

import matplotlib

from matplotlib import font_manager

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

(根据电脑字体----Windows下,快捷键Win+R打 开运行命令窗口,输入fonts直接定位到电脑字体)or(命令行fc-list回车fc-list:lang=zh)

x =range(0,120)

y = [random.randint(20,35) for i in range(120)]

plt.xticks(_x,_xtick_labels,fontproperties=my_font)

第二种

windws和Linux设置字体

font = {'family': 'MicroSoft YaHei',

            'weight': 'bold',

             'sizel: '10'}

        ---可以用Ctrl+B查看注释行那里有,不需要另记

matplotlib.rc("font",**font)

matplotlib.rc("font",family='MicroSoft   YaHei',weight="bold")

#添加描述信息

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

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

plt.title("10点到12点每分钟的气温变化情况",fontproperties=my_font)       -----fontproperties=my_font中文显示

#设置图形大小

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

plt.plot(x,y_1,label="自己",color ="orange",line style=':')   ---点图

plt.plot(x,y_2,label="同桌",color="cyan" ,linest yle="--")     ---线线图

150cb79e807b4b14b8804630b29da146.jpg

 #添加图例

plt.legend(prop=my_font,loc="upper left")

           ------xy的描述信息在左上

af4da827e64c43afb9aa0e3e90403c0a.jpg

86669410ca89406f8662bd60fa8127e3.jpg 

 ·散点图

#使用scatter方法绘制散点图,和之前绘制折线图的唯一区别

plt.scatter(x_3,y_3,1abel="3月份") plt.scatter(x_10,y_10,labet="10月份")

·条形图

a是列表

plt.bar(range(len(a)),b,width=0.3)

plt.xticks(range(len(a)),a,fontproperties=my_font,rotation=90)

#(横着)

多条条形图

plt.bar(range(len(a)),b,height=0.3)

x_14 list(range(len(a))) 

x_15 [i+bar_width for i in x_14] 

x_16 [i+bar_width*2 for i in x_14]

 

·直方图

from matplotlib import pyplot as plt

from matplotlib import font_manager

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

算组数

num_bins = (max(a)-min(a))//d +1 

b= (max(a)-min(a))//num_bins

#设置图形的大小

plt.figure(figsize=(20,8),dpi=80) plt.hist(a,num_bins,normed=True)

93e4de4f0f014a3688a75dea5c740f37.jpg

 

思维导图:

c96040960ddf4762a2676493b7abb722.jpg

 

  • 19
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值