#绘制折线图

import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams["font.sans-serif"]='SimHei'
plt.rcParams['axes.unicode_minus'] = False
fig = plt.figure()
plt.figure(figsize = (8,6))
plt.subplot(1,1,1)
#指明x和y值
import numpy as np
x = np.array([1,2,3,4,5,6,7,8,9])
y = np.array([312,423,564,534,754,765,456,235,432])
#绘图
plt.plot(x,y,color="k",linestyle="dashdot",linewidth=1,marker="o",markersize = 5,label = "注册用户数")
#设置标题
#标题名及其位置
plt.title("xxx公司1-9月用户注册量",loc="center")
#添加数据标签
for a,b in zip(x,y):
    plt.text(a,b,b,ha='center',va="bottom",fontsize =10)

#设置网格线
plt.grid(True)
#设置图例
plt.legend()
#保存图表到本地
plt.savefig("C:/Users/jsjilu/Desktop/plot.jpg")

#绘制柱形图
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams["font.sans-serif"]='SimHei'
plt.rcParams['axes.unicode_minus'] = False
fig = plt.figure()
plt.figure(figsize = (8,6))
plt.subplot(1,1,1)

#指明x和y值
import numpy as np
x = np.array(["east","north","south","west"])
y = np.array([8552,7541,6587,5784])

#绘图
plt.bar(x,y,width=0.5,align="center",label = "任务量")

#设置标题
#标题名及其位置
plt.title("全国各分区任务量",loc="center")

#添加数据标签
for a,b in zip(x,y):
    plt.text(a,b,b,ha='center',va="bottom",fontsize =12)

#设置x轴和y轴的名称
plt.xlabel("zone")
plt.ylabel("quanity")
#设置图例显示
plt.legend()
#保存图表到本地
plt.savefig("C:/Users/jsjilu/Desktop/bar.jpg")

#绘制簇状图
plt.subplot(1,1,1)

#指明x和y值
x = np.array([1,2,3,4])
y1 = np.array([312,423,564,534])
y2 = np.array([152,241,321,235])

#绘图
plt.bar(x,y1,width = 0.3,label = "任务量")
plt.bar(x+0.3,y2,width = 0.3,label = "完成量") #相当于把完成量的每个柱子右移0.3

#设置标题
#标题名及其位置
plt.title("全国各分区任务量和完成量",loc="center")

#添加数据标签
for a,b in zip(x,y1):
    plt.text(a,b,b,ha='center',va="bottom",fontsize =12)

#设置x轴和y轴的名称
plt.xlabel("zone")
plt.ylabel("quanity")

#设置x轴刻度值
plt.xticks(x+0.15,{"east","south","west","north"})

#设置网格线
plt.grid(False)

#设置图例显示
plt.legend()
#保存图表到本地
plt.savefig("C:/Users/jsjilu/Desktop/bar2.jpg")

#绘制堆积图
plt.subplot(1,1,1)

#指明x和y值
x = np.array(["east","south","west","north"])
y1 = np.array([312,423,564,534])
y2 = np.array([152,241,321,235])

#绘图
plt.bar(x,y1,width = 0.3,label = "任务量")
plt.bar(x,y2,width = 0.3,label = "完成量")

#设置标题
#标题名及其位置
plt.title("全国各分区任务量和完成量",loc="center")

#添加数据标签
for a,b in zip(x,y1):
    plt.text(a,b,b,ha='center',va="bottom",fontsize =12)
    
for a,b in zip(x,y2):
    plt.text(a,b,b,ha='center',va="top",fontsize =12)

#设置x轴和y轴的名称
plt.xlabel("zone")
plt.ylabel("quanity")

#设置网格线
plt.grid(False)

#设置图例显示
plt.legend(loc = "upper center",ncol = 2)
#保存图表到本地
plt.savefig("C:/Users/jsjilu/Desktop/bar3.jpg")

#绘制条形图
plt.subplot(1,1,1)

#指明x和y值
x = np.array(["east","south","west","north"])
y = np.array([312,423,564,534])

#绘图
plt.barh(x,height=0.5,width=y,align="center")

#设置标题
#标题名及其位置
plt.title("全国各分区任务量",loc="center")

#添加数据标签
for a,b in zip(x,y):
    plt.text(b,a,b,ha='right',va="center",fontsize =12)

#设置x轴和y轴的名称
plt.xlabel("quanity")
plt.ylabel("zone")

#设置网格线
plt.grid(False)
#保存图表到本地
plt.savefig("C:/Users/jsjilu/Desktop/barh.jpg")

#绘制散点图,用plt库里面的scatter
#plt.scatter(x,y,s,c,marker,linewidths,edgecolors)
#s-表示每个点的面积,即大小;c-每个点的颜色;marker-标记,和折线图中一样;散点的线宽;轮廓的颜色

plt.subplot(1,1,1)

#指明x和y值
x = [5,8,7,5,6,9,11,10,15,14]
y = [1,2,5,4,6,7,9,8,11,13]

#绘图
plt.scatter(x,y,marker="o",s=100)

#设置标题
#标题名及其位置
plt.title("1-8月a和b的关系图",loc="center")

#设置x轴和y轴的名称
plt.xlabel("a")
plt.ylabel("b")

#设置网格线
plt.grid(False)
#保存图表到本地
plt.savefig("C:/Users/jsjilu/Desktop/scatter.jpg")

#绘制气泡图
plt.subplot(1,1,1)

#指明x和y值
x = np.array([4,5,6,7,8,9])
y = np.array([1,2,3,4,5,6])

#绘图
colors = y*10   #根据y值的大小生成不同颜色
area = y*100    #根据y值大小生成大小不同的形状

plt.scatter(x,y,c = colors , marker="o",s = area)

#设置标题
#标题名及其位置
plt.title("1-8月a和b的关系图",loc="center")

#设置数据标签
for a,b in zip(x,y):
    plt.text(a,b,b,ha = 'center', va = "center", fontsize =10,color = "white")
    
#设置x轴和y轴的名称
plt.xlabel("a")
plt.ylabel("b")

#设置网格线
plt.grid(False)
#保存图表到本地
plt.savefig("C:/Users/jsjilu/Desktop/scatter2.jpg")

#绘制面积图,与折线图类似,用plt库里面的stackplot
#plt.stackplot(x,y,labels,colors)

plt.subplot(1,1,1)

#指明x和y值
x = np.array([1,2,3,4,5,6,7,8,9,10])
y1 = np.array([1,2,5,4,6,7,9,8,11,13])
y2 = np.array([2,4,6,4,6,7,9,8,11,13])

#绘图
labels = ["a","b"]
plt.stackplot(x,y1,y2,labels = labels)

#设置标题
#标题名及其位置
plt.title("1-10月a,b值",loc="center")

#设置x轴和y轴的名称
plt.xlabel("月份")
plt.ylabel("a,b值")
plt.legend()
#设置网格线
plt.grid(False)
#保存图表到本地
plt.savefig("C:/Users/jsjilu/Desktop/stackplot.jpg")

#绘制树地图
#经常表示同一等级中不同类别的占比关系,使用squarify库
#要先安装库
#pip install squarify
#在anaconda prompt程序中输入即可

import squarify

#指定每一块的大小
size = np.array([0.1,0.2,0.3,0.4])
#指定每一块的文字标签
zhongwen = np.array(["a","b","c","d"])
#指定每一块的数值标签
rate = np.array(["10%","20%","30%","40%"])

#指定每一块的颜色
colors = ['steelblue','#9999ff','red','green']

#绘图
plot = squarify.plot(sizes = size,
                    label = zhongwen,
                    color = colors,
                    value = rate,
                    edgecolor = 'white',
                    linewidth = 3)
#设置标题大小
plt.title('xx分布',fontdict = {'fontsize':12})

#去除坐标轴
plt.axis('off')

#去除上边框和右边框的刻度
plt.tick_params(top = 'off',right = 'off')

#保存到本地
plt.savefig("C:/Users/jsjilu/Desktop/squarify.jpg")

#绘制雷达图,用的是polar方法
#plt.polar(theta,r,color,marker,linewidth)
#每一点在极坐标中的角度,半径,连接每个点间线的颜色,每点的标记物,线宽度

import numpy as np
import matplotlib.pyplot as plt
 
# 使用ggplot的绘图风格,这个类似于美化了,
# 可以通过plt.style.available查看可选值,你会发现其它的风格真的丑。。。
plt.style.use('ggplot')
 
# 构造数据
values = [2.6,2.1,3.4,3,4.1]
feature = ['个人能力','QC知识','解决问题能力','服务质量意识','团队精神']
 
# 设置每个数据点的显示位置,在雷达图上用角度表示
angles=np.linspace(0, 2*np.pi,len(values), endpoint=False)
 
# 拼接数据首尾,使图形中线条封闭
values=np.concatenate((values,[values[0]]))
angles=np.concatenate((angles,[angles[0]]))
 
# 绘图
fig=plt.figure()
# 设置为极坐标格式
ax = fig.add_subplot(111, polar=True)
# 绘制折线图
ax.plot(angles, values, 'o-', linewidth=2)
# 填充颜色
ax.fill(angles, values, alpha=0.25)
 
# 设置图标上的角度划分刻度,为每个数据点处添加标签
ax.set_thetagrids(angles * 180/np.pi, feature)
 
# 设置雷达图的范围
ax.set_ylim(0,5)
# 添加标题
plt.title('活动前后员工状态表现')
# 添加网格线
ax.grid(True)
#保存到本地
plt.savefig("C:/Users/jsjilu/Desktop/polarplot.jpg")

# 绘制箱型图,使用boxplot,反应数据的离散情况
# plt.boxplot(x,vert,width,label)
# 待绘图源数据;箱型图方向(true纵);图宽;标签

plt.subplot(1,1,1)

y1 = np.array([866,2335,11000,6482,6120,1605,3813,4428,4631])
y2 = np.array([433,1167,2855,3241,3060,802,1906,2214,2315])
x = [y1,y2]

#绘图
labels = ["注册人数","激活数量"]
plt.boxplot(x,labels = labels,vert = True,widths = [0.2,0.5])

#设置标题
plt.title("xxx公司1-9月注册和激活人数",loc = "center")
#网格线
plt.grid(False)
plt.savefig("C:/Users/jsjilu/Desktop/boxflot.jpg")

#绘制饼图,用pie
#plt.pie(x,explode,labels,colors,autopct,pctdistance,shadow,labeldistance,startangle,radius,conunterclock,wedgeprops,textprops,center,frame)
#待绘图数据,每一块距离圆心距离,每一块的标签,颜色,百分比格式,标签距离,是否有阴影,索引距离,初始角度,半径,是否逆时针显示,内外边界属性,文本相关属性,中心位置,是否显示饼图背后的图框

plt.subplot(1,1,1)

x = np.array([0.924,
0.036,
0.005,
0.003,
0.032
])

labels =["一级白砂糖",
"绵白糖",
"原糖",
"糖制糖",
"红糖"]
explode = [0.05,0,0,0,0]  #让第一块离圆心远一点
labeldistance = 1.1

plt.pie(x,labels = labels,autopct = '%.0f%%',shadow = True,
       explode = explode,radius =1.0,labeldistance = labeldistance)

#设置标题
plt.title("不同食糖占比",loc = "center")
#保存
plt.savefig("C:/Users/jsjilu/Desktop/futures/pie1.jpg")

#绘制圆环图,用于表示同一层级不同类别之间的占比关系,使用的也是pie

plt.subplot(1,1,1)

x1 = np.array([8566,5335,7310,6482])
x2 = np.array([4283,2667,3655,3241])

labels =["east","south","west","north"]

plt.pie(x1,labels = labels,radius =1.0,wedgeprops = dict(width =0.3,edgecolor = 'w'))

plt.pie(x2,radius =0.7,wedgeprops = dict(width =0.3,edgecolor = 'w'))

#添加注释
plt.annotate("完成量",xy =(0.35,0.35),xytext = (0.7,0.45),
            arrowprops = dict(facecolor = 'black',arrowstyle = '->'))
plt.annotate("任务量",xy =(0.75,0.20),xytext = (1.1,0.20),
            arrowprops = dict(facecolor = 'black',arrowstyle = '->'))

#设置标题
plt.title("xx各区域任务量和完成量占比",loc = "center")
#保存
plt.savefig("C:/Users/jsjilu/Desktop/pie2.jpg")

#绘制热力图,将某一事物的响应度反应在图表上,可以快速发现需要重点关注的区域,使用imshow
# plt.imshow(x,cmap)
# 数据需要是矩阵形式,配色方案cmap 所有可选值都封装在plt。cm里面,输入plt.cm.然后按Tab即可

#几个相关指标之间的相关性
cm = np.array([[1,0.082,0.031,-0.0086],
            [0.082,1,-0.063,0.062],
            [0.031,-0.09,1,0.026],
            [-0.0086,0.062,0.026,1]])

cmap = plt.cm.cool  #设置配色方案
plt.imshow(cm,cmap = cmap)
plt.colorbar()  #显示右边的颜色条

#设置x轴和y轴的刻度标签
classes = ["负债率","信贷数量","年龄","家属数量"]
tick_marks = np.arange(len(classes))
plt.xticks(tick_marks,classes)
plt.yticks(tick_marks,classes)

#注意导入库,如果显示未定义,就import
import itertools

#将数值显示在指定位置
for i,j in itertools.product(range(cm.shape[0]),range(cm.shape[1])):
    plt.text(j,i,cm[i,j],horizontalalignment = "center")
    
plt.grid(False)
plt.savefig("C:/Users/jsjilu/Desktop/imshow.jpg")

#番外 itertools, 用于迭代的好用工具
import itertools

# itertools.count()
l = [1,2,3,4,5]
c = itertools.repeat(l, 5) #迭代五次

for i in c:
    print(i)

import itertools

# itertools.count()
l = [1,2,3,4,5]
c = itertools.accumulate(l)

print(c)

for i in c:
    print(i)

#结果不出意料,accumulate()仍然返回的是一个迭代器,我们给它传了一个list,在for循环中遍历打印的时候发现,它把其中的数值做了累加操作。(迭代第一个数,就是前一个数的和,迭代到第二个数时,就是前两个数的和

import itertools

# itertools.count()
d = {'a': 1, 'b': 2, 'c': 3}
c = itertools.accumulate(d)

print(c)

for i in c:
    print(i)

#如果传入的是dict对象,那么会累加迭代dict的key

import itertools

# itertools.count()
l = [1, 2, 3, 4, 5]
t = (1, 2, 3, 4, 5)
s = 'abcdefg'
c = itertools.chain(l, t, s)

print(c)

for i in c:
    print(i)

#chain()类是非常实用的,参数可以传入任意个数序列,而且只要是序列即可,不限定序列的数据类型。 比如,我想一起迭代list, tuple, str三个序列,实用itertools.chain()轻松实现

python_10_绘制图表相关推荐

  1. matplotlib绘制图表,设置刻度标签、最大最小刻度、字体大小,label位置、刻度轴箭头等

    matplotlib绘制图表,设置刻度标签.最大最小刻度.字体大小,label位置.刻度轴箭头等 1. 效果图 2. 源码 2.1 仅使用普通轴ax + fontdict 源码 2.2 使用mpl设置 ...

  2. 用python绘制柱状图标题-使用Python绘制图表大全总结

    在使用Python绘制图表前,我们需要先安装两个库文件numpy和matplotlib. Numpy是Python开源的数值计算扩展,可用来存储和处理大型矩阵,比Python自身数据结构要高效:mat ...

  3. python能绘制统计图吗-使用Python绘制图表大全总结

    在使用Python绘制图表前,我们需要先安装两个库文件numpy和matplotlib. Numpy是Python开源的数值计算扩展,可用来存储和处理大型矩阵,比Python自身数据结构要高效:mat ...

  4. [codeigniter]CI中使用pChart绘制图表,已测通过

    因为一个codeigniter开发的项目上要用到图表.FusionChart是flash技术,在某些情况下可能造成无法使用(如ipad).因此不禁想起了之前用Pchart做的图表项目. 但是毕竟是在C ...

  5. 如何在ASP.NET中用OWC绘制图表

    一.概述  <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />   ...

  6. 【python】 读取Excel文件并绘制图表

    依赖的包: 1.xlrd 2.matplot 3.numpy 读取excel文件并绘制图表 代码如下: 点击(此处)折叠或打开 import matplotlib.pyplot as plt impo ...

  7. pyecharts学习(part1)--绘制图表的三种方式

    学习笔记,仅供参考,有错必究 文章目录 pyecharts学习 绘制图表的三种方式 绘制的图表生成HTML jupyter notebook 内嵌展示 pyecharts生成图片 pyecharts学 ...

  8. 一个详尽的面向 SAP UI5 初学者的教程 - 如何在 SAP UI5 中绘制图表 Chart

    这是 Jerry 2021 年的第 65 篇文章,也是汪子熙公众号总共第 342 篇原创文章. 观沧海 曹操 东临碣石,以观沧海. 水何澹澹,山岛竦峙. 树木丛生,百草丰茂. 秋风萧瑟,洪波涌起. 日 ...

  9. 在微信小程序中绘制图表(part2)

    本期大纲 1.确定纵坐标的范围并绘制 2.根据真实数据绘制折线 相关阅读: 在微信小程序中绘制图表(part1) 在微信小程序中绘制图表(part3) 关注我的 github 项目 查看完整代码. 确 ...

  10. 前端绘制绘制图表_绘制我的文学风景

    前端绘制绘制图表 Back when I was a kid, I used to read A LOT of books. Then, over the last couple of years, ...

最新文章

  1. NAT技术解决了IPv4地址短缺的问题,假设内网的地址数是m,而外网地址数n,若mn,则这种技术叫做(66),若mn,且n=1,则这种技术这叫做(67)。【答案】A C
  2. 旷视张祥雨:神经网络架构设计新思路
  3. [Gamma阶段]第十次Scrum Meeting
  4. nacos如何做配置中心?自带自动刷新配置功能?这一篇文章让你明明白白!
  5. jqplot学习笔记
  6. 动能如何转化成力_带式污泥压滤机的压力如何为液体的流动提供动能?
  7. Vue.js项目新建及目录结构分析
  8. 2017年总结的前端文章——CSS高级技巧汇总
  9. SparkSQL 内置函数的使用(JAVA与Scala版本)
  10. 关于Windows消息钩子的理解与测试项目
  11. 博士考试考完了,庆祝一下
  12. 外设键盘_记得那个被称为‘顶级外设’的国产品牌吗,现在推出这样一把键盘...
  13. deepin中自定义安装的软件如何加入到启动器
  14. 情感计算在淘宝UGC的应用
  15. ACM ICMR 2021雷达目标检测挑战赛(ROD2021)
  16. redis的key_value截图深入学习
  17. 咸鱼团队的第一次SCRUM冲刺
  18. 趣谈网络协议笔记 - 通信协议综述
  19. steam的游戏id怎么查?
  20. windows下管理员用户与标准用户切换过程中的坑

热门文章

  1. Java中三元运算符
  2. clk_get、clk_enable和clk_get_rate函数
  3. symbian学习笔记
  4. JavaSE笔记 30天学Java打卡 Day03
  5. python斗地主游戏源码_Python实现的斗地主引擎
  6. Unity资源加载之Assetbundle(一)
  7. 什么是“理解”?如何在人工智能中定义“理解”?(what is understanding ?)
  8. 黄山5日游 最省钱的线路指南
  9. 帝国cms 制作网站地图
  10. js实现addClass、removeClass方法