Python画折线图示例代码

Python画图

双折线图代码示例

import matplotlib.pyplot as plt
import pandas as pd
data = pd.read_excel(r'1.xlsx',header=None)
fig, ax1 = plt.subplots()
color = 'tab:red'
ax1.set_xlabel('Year')
ax1.set_ylabel('SHRL', color=color)
ax1.plot(data.iloc[1:,0], data.iloc[1:,1], color=color, alpha=0.8, linewidth=1)
ax1.tick_params(axis='y', labelcolor=color)
#ax.invert_yaxis() #y轴反向
ax2 = ax1.twinx()  # 创建共用x轴的第二个y轴
color = 'tab:blue'
ax2.set_ylabel('precipitation', color=color)
ax2.plot(data.iloc[1:,0], data.iloc[1:,2], color=color, alpha=0.8, linewidth=1)
ax2.tick_params(axis='y', labelcolor=color)
fig.tight_layout()
plt.savefig("1.jpg",bbox_inches='tight',dpi=300)# 保存该图片
plt.show()

双折线图示例,不同坐标系

单折线图代码示例

import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
# 坐标轴负号的处理
plt.rcParams['axes.unicode_minus'] = False
# 读取数据
c = pd.read_excel(r'占比.xlsx')
# plot中参数的含义分别是横轴值,纵轴值,线的形状,颜色,透明度,线的宽度和标签
plt.plot(c.year, c.Percentage, 'ro-', color='#4169E1', alpha=0.8, linewidth=1, label='Proportion')
# 显示标签,如果不加这句,即使在plot中加了label='一些数字'的参数,最终还是不会显示标签
plt.legend(loc="upper right")
plt.xlabel('Year')
plt.ylabel('Proportion/%')
# plt.savefig("1.jpg",bbox_inches='tight',dpi=300)# 保存该图片
plt.show()

在这里插入图片描述

多个子图画图示例


import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from math import  sin,cos
# 画第1个图:折线图
x=np.arange(0,6,0.1)
plt.subplot(221)
plt.plot(x,np.sin(x))
# 画第2个图:
plt.subplot(222)
plt.plot(x,x)
plt.plot(x,x*x,color='pink',label='y=x^2')
plt.plot(x,x*x*x,label='y=x^3')
plt.legend()#要显示标签必须加这一行代码
# 画第3个图:饼图
plt.subplot(223)
plt.pie(x=[15,30,45,10],labels=list('ABCD'),autopct='%.0f',explode=[0,0.05,0,0])
# 画第4个图:条形图
plt.subplot(224)
plt.bar([20,10,30,25,15],[25,15,35,30,20],color='b')
plt.show()

多子图

折线图与柱状图在同一图中显示,不同坐标系

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2022/12/24 20:53
# @Author  : Tiger大队队长
# @File    : 122.py

# python 画柱状图折线图
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.ticker as mtick
from matplotlib.font_manager import FontProperties

font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14)
a = [12.6, 14.2, 9.4, 3.74, 3.11, 2.85, 2.68, 3.53]  # 单日票房折现
b = [97.7,96.6,95.7,94.5,93.4,93.2,92.9,62.5]#票房占比直方
l = [i for i in range(8)]

plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签

fmt = '%.2f%%'
yticks = mtick.FormatStrFormatter(fmt)  # 设置百分比形式的坐标轴
lx = ["16日", "17日", "18日", "19日", "20日", "21日", "22日", "23日"]

fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot(l, a, 'or-', label=u'单日票房(千万)');

for i, (_x, _y) in enumerate(zip(l, a)):
    plt.text(_x, _y, a[i], color='black', fontsize=10)  # 将数值显示在图形上
ax1.legend(loc=1)
ax1.set_ylim([0, 20]);
ax1.set_ylabel('单日票房');
plt.legend(prop={'family': 'SimHei', 'size': 8})  # 设置中文
ax2 = ax1.twinx()  # this is the important function
plt.bar(l, b, alpha=0.3, color='blue', label=u'票房占比(%)')

for i, (_x, _y) in enumerate(zip(l, b)):
    plt.text(_x, _y, b[i], color='black', ha='center',va='top',fontsize=10)  # 将数值显示在图形上
ax2.legend(loc=2)
ax2.set_ylabel('票房占比');
ax2.set_ylim([50, 110])  # 设置y轴取值范围
ax2.yaxis.set_major_formatter(yticks)
plt.legend(prop={'family': 'SimHei', 'size': 8}, loc="upper left")
plt.xticks(l, lx)
plt.show()

在这里插入图片描述

  • 1
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值