python柱状图纵轴刻度_Python数据分析:Matplotlib 终于到了python数据分析三剑客的最后⼀课:Matplotlib,⼀个专门⽤于绘制图形的库,话不多说,直接进⼊主题。
内容⽬录图形的构成
plot样式风格
plot保存图像
各种图形绘制
1 图形的构成
1.1 Figure
在绘制图形之前,我们需要⼀个Figure对象,可以理解成我们需要⼀张画板才能开始绘图。
import matplotlib.pyplot as plt # 约定俗成的写法
from pylab import *
fig = plt.figure()
plt.figure的参数:(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=, clear=False, **kwargs)num:图像编号或名称,数字为编号 ,字符串为名称
figsize:指定figure的宽和⾼,单位为英⼨
dpi: 参数指定绘图对象的分辨率,即每英⼨多少个像素,缺省值为80, 1英⼨等于2.5cm,A4纸是 21*30cm的纸张
facecolor: 背景颜⾊
edgecolor: 边框颜⾊
frameon: 是否显⽰边框
fig = plt.figure(num="hakg",figsize=(10,5),facecolor='g')
ax1 = fig.add_subplot(111)
ax1.set(xlabel="x",ylabel='y')
plt.plot(x,y)
这⾥只是为了展⽰figure的参数,我知道很丑
1.2 subplot
使⽤subplot可以在⼀个界⾯中显⽰多张图像。
参数:subplot(nrows,ncols,num,sharex,sharey,subplot_kw,**fig_kw)nrows:subplot的⾏数
ncols:subplot的列数,⾏X列就是被分成多少个图像区域
num:⽬前该图像位于第⼏个位置
sharex:所有subplot应该使⽤相同的X轴刻度(调节xlim将会影响所有的subplot)
sharey:所有subplot应该使⽤相同的Y轴刻度(调节ylim将会影响所有的subplot)
subplot_kw:⽤于创建各subplot的关键字字典
**fig_kw:创建figure时的其他关键字
plt.subplot(ijn) i代表划分为⼏⾏j为⼏列,n是指⽬前在第⼏个⼦区域内,这⾥也可以使⽤fig.subplot(ijn) fig = plt.figure()
ax1 = fig.add_subplot(221) # 划分为2⾏2列四个区域,这是第⼀个区域,以下以此类推
ax1.set(title="标题1",ylabel='y',xlabel='x')
ax2 = fig.add_subplot(222)
ax2.set(title="标题2",ylabel='y',xlabel='x')
ax3 = fig.add_subplot(223)
ax3.set(title="标题3",ylabel='y',xlabel='x')
ax4 = fig.add_subplot(224)
ax4.set(title="标题4",ylabel='y',xlabel='x')
plt.show()
数据区域的划分顺序为:先⾏后列
1.3 Axes 轴
在拥有了Figure对象之后,我们还需要有对应的轴 和 标题
xlabel x轴 ⽔平轴标签
ylabel y轴 垂直轴标签
title 标题
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set(title="计算",ylabel='y',xlabel='x')
plt.show()
1.4 ticks 刻度
⾃定义设置x轴和y轴的刻度,但是这个功能⼀般很少⽤,默认的结果就能满⾜需求
x = [1,2,3,4]
y = [5,6,7,8]
plt.plot(x,y)
1.5 图例
plt.legend⽅法
常⽤参数:loc 图例的位置,默认是:upper right
ncol 图例分⼏列展⽰,默认为1
fontsize 图例字体⼤⼩
loc分类介绍
fontsize:{‘xx-small’, ‘x-small’, ‘small’, ‘medium’, ‘large’, ‘x-large’, ‘xx-large’}
详细参数参考如下(了解):
两种⽅式分别在plot函数中增加label参数,再调⽤plt.legend()⽅法显⽰
直接在legend⽅法中传⼊字符串列表
第⼀种⽅式
import numpy as np
x = np.linspace(-np.pi,np.pi,num=100)
y = x**2
plt.plot(x,y,label='dist')
plt.plot(x-3,y+2,label='temp')
plt.legend()
第⼆种⽅式
import numpy as np
x = np.linspace(-np.pi,np.pi,num=100)
y = x**2
plt.plot(x,y,c='r')
plt.plot(x-3,y+2)
plt.legend(["dist","temp"],loc="upper left",ncol=2)
1.6 ⽹格线
参数:(b, which, axis, color, linestyle, linewidth,**kwargs)b: True 或 False True就是显⽰,False就是不显⽰
which: 'major', 'minor', 'both',默认是both
axis: ‘both’,‘x’,‘y’,可以选择 y x,也就是指定选择x显⽰⽹格线或者y显⽰⽹格线,但是我尝试了之后发现不起作⽤,暂且记住这个功能吧
color: 颜⾊
linestyle: 线条
linewidth: 线条宽度
x = [1,2,3,4]
y = [5,6,7,8]
x1 = [10,10,12,12]
y1 = [20,15,10,6]
plt.plot(x,y,x1,y1)
1.7 标签内容
<()
参数: (x, y, s, weight="bold", color="b")x:注释⽂本内容或者数据标签所在位置的横坐标y: 注释⽂本内容或者数据标签所在位置的纵坐标
s:注释⽂本内容或者数据标签
weight:注释⽂本内容的粗细风格
color:注释⽂本内容的字体颜⾊
其中x和yq确定⽂本在图像中显⽰的位置
第⼀种情况,只显⽰⽂本内容
x = np.linspace(0.05, 10, 1000)
y = np.sin(x)
plt.plot(x, y, ls="-.", lw=2, c="c", label="plot figure")
plt.legend()
<(3.10, 0.09, "y=sin(x)", weight="bold", color="b")
plt.show()
第⼆种情况,数据标签
例如:柱状图,我们需要在每个柱上显⽰标签,因此这⾥操作有点⿇烦,需要⽤到循环
⽰例
import pandas as pd
data = pd.read_excel('../data/picture_data.xlsx')
data.head()
计算每个部门的⼈数
dep = data["部门"].value_counts()
b = plt.bar(dep.index,dep.values)
for i in b:
<(i.get_x() + i.get_width() / _height()+0.1,_height()))
# i.get_x() 获取每个柱型的x轴位置
# i.get_width() 每个柱形的宽度
# i.get_height() 柱形的⾼度
不得不吐槽⼀下,这个数据标签,添加起来真⼼⿇烦
2 plot的风格和样式
2.1 color 颜⾊
⽀持以下⼏种形式1 颜⾊名称
color颜⾊,不同字母代表不同颜⾊,⽤color或者c2 HTML⼗六进制字符串 例如:color=‘#FF0000’ 红⾊
3 ⽀持RGB 归⼀化到[0,1] 例如:color=(0.3,0.3,0.3),如果你使⽤的是(234,23,14)需要分别除以256,归⼀化之后才能使⽤。matplotlib中subplot
2.2 marker 图标
^就是三⾓形,o就是圆点,+就是加号型
如果上⾯看不太明⽩的话,可以参考这个,也可以⾃⼰⼿动试⼀试
符号对应的图形
o圆点
p五边形(看起来也有点像圆点)
h六边形(看起来也有点像圆点)
H旋转六边形(两顶点在线上)
d细菱形
D菱形
s正⽅形
^上三⾓
v(⼩v)下三⾓
<;左三⾓
>右三⾓
1丫(这⾥称之为下箭头)
2上箭头
3左箭头
4右箭头
,像素
+加号
x叉形
X粗叉形
-⽔平线
2.3 linestyle 线条
2.4 ⼤⼩linewidth 对于linestyle的线条的宽度设置,默认为2
markersize 对于marker图标的⼤⼩设置,默认为12
2.5 透明度
alpha参数 [0,1]之间
3 plot保存图像
plt.savefig() 保存图像
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论