爱站网关键词查询,网站可以做多少个网页,商业网站有什么作用,自己建设网站需要什么手续文章传送门
Python 数据可视化matplotlib之绘制常用图形#xff1a;折线图、柱状图#xff08;条形图#xff09;、饼图和直方图matplotlib之设置坐标#xff1a;添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值matplotlib之增加图形内容#x…文章传送门
Python 数据可视化matplotlib之绘制常用图形折线图、柱状图条形图、饼图和直方图matplotlib之设置坐标添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值matplotlib之增加图形内容设置图例、设置中文标题、设置网格效果matplotlib之设置子图绘制子图、子图共享x轴坐标matplotlib之绘制高级图形散点图、热力图、等值线图、极坐标图matplotlib之绘制三维图形三维散点图、三维柱状图、三维曲面图 目录 简述 / 前言1. 折线图2. 柱状图条形图3. 饼图4. 直方图 简述 / 前言
这篇文章主要讲解Python数据可视化库 matplotlib 的一些操作由于知识点较多所以应该会分多篇文章进行分享。具体可以参考 matplotlib 官网下面附上一些小贴士5 张图片掌握 matplotlib 主要知识点这5张图片来源于 matplotlib 官网的备忘录。后面的文章只会总结一些重点内容不会面面俱到所以对绘制某一个图形感兴趣的伙伴可以直接去官网看教程和例子。更详细的教程可能会在 Python 教程那里给出等有时间再写吧~ 这一篇主要分享用 matplotlib 绘制常用图形折线图、柱状图条形图、饼图和直方图。
画完图都要使用 show() 方法才能看到图像哦~ 1. 折线图
绘制折线图一般需要读取 x, y 轴的数据再通过 plot 方法绘制折线图示例如下
import matplotlib.pyplot as plt
import numpy as np# 设置x轴和y轴的坐标
x np.arange(0, 9, 2) # [0, 9) 每间隔1个数取一次值即x [0 2 4 6 8]
y np.array([0, 1, 4, 6, 8])
print(fx {x})
print(fy {y})plt.plot(x, y) # 通过plot方法绘制折线
plt.show() # 通过show方法展示
输出
可以看到在绘制折线图时只给了它坐标轴的值但是没有给线条颜色、样式等属性这是因为 matplotlib 已经封装好一些默认值了如果要修改可以通过可变参数 **kwargs 来改动常用的属性如下
属性含义color线的颜色linewidth线的宽度厚度linestyle线的样式 【虚线:破折线--点划线-.】marker坐标点的标记方式 【实心圆o加号五角星*点.叉叉x上三角形^下三角形v左三角形右三角形正方形s菱形d五边形p六边形h下划线(_或者数字的0和1)】alpha透明度取值范围[0, 1]值越小越透明
现在对上面的折线图进行修改看看效果
import matplotlib.pyplot as plt
import numpy as np# 设置x和y轴的坐标
x np.arange(0, 9, 2)
plt.plot(x, x * 0.5, color#33141e, linewidth10, linestyle:, alpha0.2)
plt.plot(x, x, colorblue, linewidth1, linestyle--, markerv, alpha0.5)
plt.plot(x, x * 1.5, colorred, linewidth3, linestyle-., markero, alpha1)
plt.show()输出
2. 柱状图条形图
关键语句matplotlib.pyplot.bar(x, height, ...)
一般会这么写matplotlib.pyplot.bar(x, height, alphaalpha, widthwidth, colorcolor, edgecoloredgecolor, labellabel, lwlw)各参数含义如下
属性含义xx轴的位置序列height每个x对应的条形图高度注意len(x) len(height)alpha透明度取值范围[0, 1]值越小越透明width每条柱状图的宽度也可以只填一个数这时全部柱状图的宽度都是一致的color每个柱状图的颜色【它会根据你给的颜色循环使用比如有4条柱状图你只给了3种颜色红黄蓝那么最后图形的颜色就是红黄蓝红】edgecolor边缘的颜色label图例lw边缘线的宽度
示例
import matplotlib.pyplot as pltx [1, 2, 3, 4] # x轴刻度
height [10, 20, 15, 18] # y轴刻度height
color [red, yellow, blue, green]
x_label [class1, class2, class3, class4]
# 绘制x刻度标签
plt.xticks(x, x_label)
# 绘制柱状图
plt.bar(x, height, colorcolor, edgecolorblack)
plt.show()输出
修改一些样式并只给定3种颜色
import matplotlib.pyplot as pltx [1, 2, 3, 4] # x轴刻度
height [10, 20, 15, 18] # y轴刻度
color [red, yellow, blue] # 只给定3种颜色
x_label [class1, class2, class3, class4]
# 绘制x刻度标签
plt.xticks(x, x_label)
# 绘制柱状图
plt.bar(x, height, alpha0.8, width0.2, colorcolor, edgecolorblack, lw3)
plt.show()输出
注因为在语句中加入了 plt.xticks(x, x_label)所以x轴显示的不是数值如果注释掉那句话那么图形是这样的~
如果不是一次性传入数据而是传一次数据画一个柱状图那么每个柱状图的颜色就会不一样。
示例
import matplotlib.pyplot as pltx [1, 2, 3, 4] # x轴刻度
height [10, 20, 15, 18] # y轴刻度
color [red, yellow, blue] # 只给定3种颜色
x_label [class1, class2, class3, class4]
# 绘制x刻度标签
# plt.xticks(x, x_label)
# 绘制柱状图
# plt.bar(x, height)
for xi, yi in zip(x, height): # 一个一个柱状图画plt.bar(xi, yi)
plt.show()输出
3. 饼图
关键语句matplotlib.pyplot.pie(sizes, ...)
一般会这么写matplotlib.pyplot.pie(sizes, explodeexplode, labelslabels, colorscolors, startanglestartangle, radiusradius)其中各属性含义如下
属性含义sizes饼图每个块的值explode离开中心点的距离注意len(explode) len(sizes)labels饼图每个块要说明的文字colors饼图每个块的颜色【它会根据你给的颜色循环使用比如有4块饼图你只给了3种颜色红黄蓝那么最后图形的颜色就是红黄蓝红】autopct显示每块饼图划分的比例并设置显示的小数位数shadow布尔值是否显示阴影startangle起始角度默认是从x轴正方向逆时针开始画图radius饼图的半径
示例
import matplotlib.pyplot as pltsizes [10, 20, 15, 18, 50]
explode (0.1, 0.1, 0.1, 0.1, 0.1)
labels [class1, class2, class3, class4, class5]
colors [blue, red, green, yellow, pink, black]
plt.pie(sizes, explodeexplode, labelslabels, colorscolors, autopct%.1f%%, shadowTrue, startangle30, radius0.8)
plt.show()输出
如果颜色没给够那么图形就是这样的
import matplotlib.pyplot as pltsizes [10, 20, 15, 18, 50]
explode (0, 0.1, 0, 0, 0)
labels [class1, class2, class3, class4, class5]
colors [blue, red, green]
plt.pie(sizes, explodeexplode, labelslabels, colorscolors, startangle30, radius1.2)
plt.show()输出
注这样看上去就很难区分每部分了甚至还会出现两个块颜色相同合并在了一起所以颜色一定要给够哪怕颜色给多了也不会报错它只会按照给的颜色顺序赋值
4. 直方图
关键语句matplotlib.pyplot.hist(x, bins, ...)
一般会这么写matplotlib.pyplot.hist(x, bins, densitydensity, histtypehisttype, alignalign, colorcolor, labellabel)其中各属性含义如下
属性含义x在x轴上的数值y数据分布情况bins柱状图个数数据区间density是否将直方图的频数转换成频率默认值为False(y轴为频数)可以改为 True(y轴为频率)histtype直方图形状可以选bar、barstacked、step(梯形)、stepfilled(对梯形内部进行填充)默认是baralign【不建议修改】控制柱状图水平分布可以选left、mid(默认值)、rightcolor直方图颜色label标签展示图标时使用
示例
import matplotlib.pyplot as plt
import numpy as npx np.random.randint(10, 51, 300)
bins np.arange(10, 51, 2) # 设置连续的边界值即直方图的分布区间
# 绘制直方图
plt.hist(x, bins)
plt.show()输出
修改一些属性试试
import matplotlib.pyplot as plt
import numpy as npx np.random.randint(10, 51, 300)
bins np.arange(10, 51, 2) # 设置连续的边界值即直方图的分布区间
# 绘制直方图
plt.hist(x, bins, densityTrue, histtypestep, alignleft, colorgreen)
plt.show()输出