Python--绘图--帮助你更容易的实现文件操作自动化

    Hello,大家好,我是小北,自上次总结了小白学习python的学习道路后,就以及有一段时间没有更新了,所以今天,带大家来学习一篇用python来绘图的内容!这一篇呢也是一个全新的知识点,会跟后续操作csv有一定的挂钩哦!!!好好看,好好学。

    好了,冷静完了,开始我们的学习吧!

折线图

    这一章我们用到了不一样的库:matplotlib

    我门直接上例子,用例题说话:

import matplotlib.pylab as plt


numbers = [1, 2, 3, 4]
#网格状
plt.style.use('seaborn')
# fig表示整张图片,ax表示图片中的各个图表,subplots()函数在一张图片中绘制一个或多个图标
fig, ax = plt.subplots()
ax.plot(numbers)
plt.show()

    我们导入了一个所需要用到的类,并将它重新换了一个简短一点的名字,随后我们定义了一个列表,后续用于可视化图表的时候用的上。

    plt.style.use('seaborn'),这里我们设置了他的一个样式,网格状的样式,后续看效果!

    fig, ax = plt.subplots(),这里我们用到了两个变量,两个变量起什么样的作用,代码注释写明白了哦,这里的变量是可变的,唯一的就是函数subplots(),这个函数可以帮助我们绘图                       ax.plot(numbers),我们使用plot方法,这个方法没有特别的意义,根据我们给定的数据进行有意义的绘制

    plt.show(),查看我们绘制的图表

   

    图是绘制出来了有点单一,我们改改其他的参数

修改线条的粗细,给坐标轴赋予名字

    我们使用上述的代码稍作修改,将一个列表的数改成另一个列表的平方数,看看折线图能否准确的标出对应的值:

import matplotlib.pylab as plt

numbers = [1, 2, 3, 4]
numbers_1 = [1,4,9,16]
# 可视化效果
plt.style.use('seaborn')#网格状

# fig表示整张图片,ax表示图片中的各个图标,subplots()函数在一张图片中绘制一个或多个图标
fig, ax = plt.subplots()
# 根据值来绘制一张有意义的图,linewidth线条粗细,number显示横坐标,numbers_1显示竖坐标
ax.plot(numbers,numbers_1, linewidth=3)
# 修改标签文字,给坐标加上标签
ax.set_title('收益', fontsize=20, fontproperties="SimHei")
ax.set_xlabel('值', fontsize=14, fontproperties="SimHei")
ax.set_ylabel('值的平方', fontsize=14, fontproperties="SimHei")
# 设置刻度标记大小
ax.tick_params(axis='both', labelsize=14)
plt.show()

    我们定义了两个列表,所以要想两个列表都显示出来,我们要在plot方法中体现出来,在plot方法中我们呢使用了一个参数linewidth,这个参数是可以随意调制,改变线条粗细。

   set_title(图表的标题)、set_xlabel(X轴的标题)、set_ylabel(Y轴的标题),因为这些都是图标的一种所以都使用ax来点上这些方法。fontproperties="SimHei"这个是当你得图表中汉字显示不出来的时候使用这个参数就可以显示出来了。

   ax.tick_params(axis='both', labelsize=14),这个也没有什么特别的意义,用于设置刻度的样式

散点图

    散点图我们用到了不一样的方法,scatter()

    散点图与折线图写法其实相差不大,就是所用到的函数 方法不一样!

plt.style.use('seaborn')
fig, ax = plt.subplots()
ax.scatter(2,4,s=200)
plt.show()

  (2,4,s=200),这里面的2,4是坐标,s=200是点的大小哦,其他的与折线图并无区别

    我们绘制多一点的点!!!

#使用scatter()绘制一系列的点
x_values = [1, 2, 3, 4]
y_values = [1, 4, 9, 16]
# 可视化效果,网格状
plt.style.use('seaborn')  

# fig表示整张图片,ax表示图片中的各个图标,subplots()函数在一张图片中绘制一个或多个图标
fig, ax = plt.subplots()
# 设置一个点,也叫散点式,2,4为坐标,s=200为点的大小,s是scatter的一个参数
ax.scatter(x_values, y_values, s=200)  
# 修改标签文字,给坐标加上标签
ax.set_title('收益', fontsize=20, fontproperties="SimHei")
ax.set_xlabel('值', fontsize=14, fontproperties="SimHei")
ax.set_ylabel('值的平方', fontsize=14, fontproperties="SimHei")
# 设置刻度标记大小
ax.tick_params(axis='both', labelsize=14)
plt.show()

   这里大家明白了吧,所谓的散点图与折线图,大部分代码都是类似的,只是所用的函数方法不一样。

    最后我们来学习如何自动的写入数据。

    比如我手上有1000个数,我要X轴与Y轴对应的平方值一一对应,我怎么样把它绘制成图呢?

# 自动计算数据并绘点、自定义颜色
x_values = range(1,1001)
y_values = [x**2 for x in x_values]
# 可视化效果
plt.style.use('seaborn')  # 网格状

# fig表示整张图片,ax表示图片中的各个图标,subplots()函数在一张图片中绘制一个或多个图标
fig, ax = plt.subplots()
# 设置一个点,也叫散点式,2,4为坐标,s=200为点的大小,c、s是scatter的一个参数,c是颜色,s是大小
ax.scatter(x_values, y_values,c= 'k', s=20)  
# 也可以RGB颜色模式自定义三个数为0~1
# ax.scatter(x_values, y_values,c=(0.9,0.0,0.8) ,s=20)
#颜色映射,了解更多看https://matplotlib.org/stable/tutorials/colors/colors.html
ax.scatter(x_values, y_values,c=y_values,cmap=plt.cm.Blues ,s=20)

# 修改标签文字,给坐标加上标签
ax.set_title('收益', fontsize=20, fontproperties="SimHei")
ax.set_xlabel('值', fontsize=14, fontproperties="SimHei")
ax.set_ylabel('值的平方', fontsize=14, fontproperties="SimHei")
# 设置刻度标记大小
ax.tick_params(axis='both', labelsize=14)
# 坐标的取值范围,axis要求提供四个值,min-max,X轴Y轴都要
# ax.axis([0,1100,0,1100000])
plt.show()
# 自动保存图表,保存在项目目录中,并把多余部分去除掉
plt.savefig('1.png',bbox_inches='tight')

    想看更多的颜色映射就去看看官网吧:https://matplotlib.org/stable/tutorials/colors/colors.html

   我们这里使用了颜色的映射,小伙伴们是不是觉得很奇怪,我前面已经定义了一个黑色的颜色,后买你进行颜色渐变又变成了蓝色的颜色渐变呢。参数cmap可以告诉你想渐变那种颜色哦,小北这里渐变的是蓝色,也可以设置成其他的红色Reds等

    ax.scatter(x_values, y_values,c=y_values,cmap=plt.cm.Blues ,s=20),这里需要说明一下就是c=y轴的坐标轴,也可以是x轴的坐标轴,这里的 意思就渐变哪一个,我们只需要指定一个轴就好,其结果是一样的。

    最后我们保存图片至当前工作模式下。

    下一章我们讲随机分布式绘图,绝对让你亮眼!!!别错过

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清安无别事

慢慢的积累一杯奶茶吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值