问题
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旋转的度数
设置字体的方式(这里只说一种)
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="--") ---线线图
#添加图例
plt.legend(prop=my_font,loc="upper left")
------xy的描述信息在左上
·散点图
#使用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)
思维导图: