python绘图

# -*- coding:gb2312 -*-
from pylab import *
from matplotlib.font_manager import FontProperties
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator, FormatStrFormatter
font = FontProperties(fname=r"C:\\WINDOWS\\Fonts\\simsun.ttc", size=14)#C:\WINDOWS\Fonts
if __name__ == '__main__':
    xmajorLocator   = MultipleLocator(1000) #将x主刻度标签设置为1000的倍数
    xmajorFormatter = FormatStrFormatter('%d') #设置x轴标签为整型
    xminorLocator   = MultipleLocator(200) #将x轴次刻度标签设置为200的倍数
    ymajorLocator   = MultipleLocator(1) #将y轴主刻度标签设置为1的倍数
    ymajorFormatter = FormatStrFormatter('%s') #设置y轴标签文本的格式

    plt.figure(figsize=(100,6)) #创建一个绘图对象, 并设置对象的宽度和高度
    plt.xlabel(u'长度', fontproperties=font)
    plt.ylabel(u'站点', fontproperties=font)
    plt.title(u'python绘图', fontproperties=font)
    ax = plt.subplot(111) #一般都在ax中设置,不再plot中设置
    #设置主刻度标签的位置,标签文本的格式
    ax.xaxis.set_major_locator(xmajorLocator)
    ax.xaxis.set_major_formatter(xmajorFormatter)
    ax.yaxis.set_major_locator(ymajorLocator)
    ax.yaxis.set_major_formatter(ymajorFormatter)
    #显示刻度网格的位置
    ax.xaxis.set_minor_locator(xminorLocator)
    ax.xaxis.grid(True, which='minor',color = 'gray',linestyle='--') #x坐标轴的次刻度网格,为虚线
    ax.yaxis.grid(True, which='major',color = 'gray') #y坐标轴的网格

    #x轴的显示刻度值
    x_axis = [0,1000,2000,3000,4000,5000,6000,7000,8000,9000,10000,11000,12000,13000,14000,15000,16000,17000,18000,19000,20000,21000]
    plt.xticks(x_axis,rotation=45)
    #为x轴增加网格线,此为实线
    for i in range(len(x_axis)-1):
        l = plt.axvline(x=x_axis[i],color='gray',linewidth=0.8)
    #y轴的显示刻度值
    y_axis = [u'金海路',u'爱国路',u'五里',u'隆昌',u'延吉',u'新桥站',u'申江路',u'金景路',u'杨高北路',u'巨峰路',u'复兴岛',u'东陆路',u'宁国路',u'江浦公园',u'提篮桥',u'天潼路',u'曲阜路',u'龙华',u'桂林公园',u'七莘路',u'东兰陵',u'虹梅路',u'龙漕路',u'虹莘路']
    y = range(0,len(y_axis))
    plt.yticks(y, y_axis, rotation=0,fontproperties=font)
    ax2 = ax.twinx()   #右侧y轴的定义
    plt.yticks(y, y_axis, rotation=0,fontproperties=font)  #右侧y轴的设置
    plt.xlim((0,21000)) #设置x轴的显示范围
    plt.ylim((0,23)) #设置x轴的显示范围

    #data_x,data_y为描的46个点,并根据这些点连线
    data_x = [219, 1001, 1303, 1744, 2046, 2618, 2920, 3659, 3961, 4527, 4829, 5503, 5805, 6537, 6839, 7361, 7663, 8261, 8563, 9067, 9369, 9941, 10243, 10868, 11170, 11789, 12091, 12677, 12979, 13390, 13692, 14223, 14525, 14947, 15249, 15803, 16105, 16848, 17150, 17755, 18057, 18765, 19067, 19485, 19787, 20441]
    data_y = [0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23]
    plt.scatter(data_x, data_y, s=3, c='r', marker='x') #绘制数据点
    plt.plot(data_x, data_y, linewidth=0.2) #绘制点的连线
    plt.show()
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值