关键词搜索

源码搜索 ×
×

一篇文章教你如何设置可视化图表的信息【python数据分析】

发布2022-05-02浏览469次

详情内容

前言

现在我们添加图后,没有指定x轴代表什么,y轴代表什么,以及这个图的标题是什么。

因此以下我们通过一些属性来设置一下。

设置线条样式:

使用plot方法:plot方法就是用来绘制线条的,因此可以在绘制的时候就把线条相关的样式通过参数传进去。

示例代码如下:

 plt.plot(x,y,linewidth=2)
  • 1

通过Line2D对象来设置:plot方法会返回一个装有Line2D对象的列表,比如lines=plt.plot(x1,y1,x2,y2)因为绘制了两根线条,因此lines中会有两个2D对象。

而如果plot只绘制一根线条,那么lines中就只有一Line2D对象。

拿到这个Line2D对象后就可以通过set_属性名设置线条的样式了:

 lines = plt.plot(x,y)
 line = lines[0]
 line.set_aa(False) #关掉反锯齿
 line.set_alpha(0.5) #设置0.5的透明度
  • 1
  • 2
  • 3
  • 4

使用plt.setp来设置:setp的好处是一次性可以设置多根线条的样式。

示例代码如下:

lines = plt.plot(x,y)
 plt.setp(lines,linewidth=10,alpha=0.5)
  • 1
  • 2

更多Line2D属性:
image.png

设置轴和标题:

设置轴名称:可以通过plt.xlabel和plt.ylabel来设置x轴和y轴的的名称。

示例代码如下:

 plt.plot(x,y,linewidth=10,color='red')
 plt.xlabel("x轴")
 plt.ylabel("y轴")
  • 1
  • 2
  • 3

默认情况下是显示不了中文的。需要设置字体。

可以通过以下代码来实现:

 # 加载字体
 from matplotlib import font_manager
 font = font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttc")
 plt.plot(x,y,linewidth=10,color='red')
 plt.xlabel("x轴",fontproperties=font)
 plt.ylabel("y轴",fontproperties=font)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

加载字体的时候,可以到C:\Windows\Fonts中找你喜欢的并且可以显示中文的字体。

找到字体后,还需要找到字体的真实名称。

方法是右键->属性->安全->对象名称:

image.png
设置标题:可以通过plt.title方法来实现。

示例代码如下:

font = font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttc")
plt.title("sin函数",fontproperties=font)
  • 1
  • 2

设置x轴和y轴的刻度:之前我们画的图,x轴和y轴的刻度都是matplotlib自动生成的。

如果想要在生成图的时候手动的指定,那么可以通过plt.xticks和plt.yticks来实现:

plt.xticks(range(0,20,2)) #在x轴上的刻度是0,2,4,6...20
  • 1

以上会把那个刻度显示在x轴上。

如果想要显示字符串类型,那么可以再构造一个数组,这个数组的长度必须和x轴刻度的长度保持一致。

然后传给xticks的第二个参数。

示例代码如下:

_x = range(0,20,2)
_xticks = ["%d坐标"%i for i in _x]
plt.xticks(_x,_xticks,fontproperties=font) #在x轴上的刻度是0坐标,2坐标...20坐标
  • 1
  • 2
  • 3

image.png
同样y轴的刻度设置也是一样的。

示例代码如下:

_y = np.arange(-1,1,0.25)
_yticks = ["%.2f点"%i for i in _y]
plt.yticks(_y,_yticks,fontproperties=font)
  • 1
  • 2
  • 3

效果图如下:
image.png
复仇者联盟电影票房案例:

avenger = [17974.4,50918.4,30033.0,40329.1,52330.2,19833.3,11902.0,24322.6,47521.8,32262.0,22841.9,12938.7,4835.1,3118.1,2570.9,2267.9,1902.8,2548.9,5046.6,3600.8]
plt.figure(figsize=(15,5))
plt.plot(avenger,marker="o")
font.set_size(10)
plt.xticks(range(20),["第%d天"%x for x in range(1,21)],fontproperties=font)
plt.xlabel("天数",fontproperties=font)
plt.ylabel("票房数(万)",fontproperties=font)
plt.grid()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

设置marker:

有时候,我们想要在一些关键点上重点标记出来。那么我们可以通过设置marker来实现。

示例代码如下:

x = np.linspace(0,20)
y = np.sin(x)
plt.plot(x,y,marker="o")
  • 1
  • 2
  • 3

image.png
我们设置了marker为o,这样就是会在(x,y)的坐标点上显示出来,并且显示的是圆点。

其中o跟之前的线条样式的简写是一样的。

另外,还可以通过markerfacecolor属性和markersize来指定标记点的颜色和大小。

示例代码如下:

###  以下设置标记点的颜色为黑色,尺寸为10
plt.plot(x,y,marker="o",markerfacecolor='k',markersize=10)
  • 1
  • 2

设置注释文本:

有时候需要在图形中的某个点标记或者注释一下。

那么我们可以使用plt.annotate(text,xy,xytext,arrowprops={})来实现,其中text是注释的文本。

xy是需要注释的点的坐标,xytext是注释文本的坐标,arrowprops是箭头的样式属性。

示例代码如下:

ax = plt.subplot(111)
 
x = np.arange(0.0, 5.0, 0.01)
y = np.cos(2*np.pi*t)
line, = plt.plot(x, y,linewidth=2)
 
plt.annotate('local max', xy=(2, 1), xytext=(3, 1.5),
arrowprops=dict(facecolor='black',shrink=0.05),
)
 
plt.ylim(-2, 2)
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

设置图形样式:

如果想要调整图片的大小和像素,可以通过plt.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)来实现。

其中num是图的编号,figsize的单位是英寸,dpi是每英寸的像素点,facecolor是图片背景颜色,edgecolor是边框颜色,frameon代表是否绘制画板。

示例代码如下:

plt.figure(figsize=(20,8),dpi=80)
###  其他的绘制图形的代码
  • 1
  • 2

我们也可以使用grid方法,来显示图片的网格:

plt.plot(x,y,color="r")
plt.grid()
  • 1
  • 2

image.png

保存图片:

可以调用plt.savefig(path)来保存当前的图片。

示例代码如下:

plt.savefig("./abc.png")
  • 1

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载