python绘图坐横坐标轴显示方式

 更新时间:2023年09月12日 09:33:36   作者:wwwddd666  
这篇文章主要介绍了python绘图坐横坐标轴显示方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

python matplotlib绘图

使横坐标轴显示指定内容

在python 绘图的时候直接plot会出现横坐标轴显示为浮点数得情况。

举个栗子:

使用代码:

import matplotlib.pyplot as plt
y = [7.1,7.2,7.3,7.4,7.5]
x = list(range(0,5))#自动生成0,1,2,3,4这几个数,并添加到list中
plt.plot(x,y)
plt.show()

得到结果图如下:

可以看到途中我标出来的坐标轴使浮点数的形式。

解决方法:

只需要在plt.plot后面加上一句plt.xticks(),指明x轴的坐标使用那个列表内容作为表示即可。

下面举个例子,

例子中就以自然数0,1,2,3,4作为坐标,也可以替换成英文单词等等,替换成中文的话需要其他操作。这里留个接口,以后写中文怎么显示。

接上例子代码,改后代码为:

import matplotlib.pyplot as plt
y = [7.1,7.2,7.3,7.4,7.5]
x = list(range(0,5))#自动生成0,1,2,3,4这几个数,并添加到list中
plt.plot(x,y)
plt.xticks(x)#指明x轴坐标使用列表x里的内容
plt.show()

改后作图如下:

python画图,坐标轴问题

画坐标轴的时候出现了2个bug

第一个是y轴的大值在下面,小值在上面

这个bug的原因是y是str类型,而不是Int类型

解决办法是把y轴的每个值都变成int型

v = [int(m) for m in v]

python的数据类型要时刻注意,float, int, str之间一不小心就转换

第二个是y轴的刻度太难看了

解决:

y_major_locator = mticker.MultipleLocator(gap)
ax.yaxis.set_major_locator(y_major_locator)

效果:

完整代码:

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
'''
@author: funcups
'''
import math
from util import kernel, axis_x, axis_name
from json_util import json_paths_list
from jsonsearch import JsonSearch
import numpy as np
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.gridspec as gridspec
import matplotlib.ticker as mticker
if __name__ == '__main__':
    latency_list = []
    Resource = {"DSP": [], "FF": [], "LUT": []}
    for json_path in json_paths_list:
        path = json_path
        fr = open(path, "r")
        json_data = fr.read()
        json_data = JsonSearch(object=json_data, mode='s')
        kernel_data = json_data.search_all_value(key=kernel)
        Latency = kernel_data[1]["Latency"]["LatencyBest"]
        DSP = kernel_data[1]["Area"]["DSP"]
        FF = kernel_data[1]["Area"]["FF"]
        LUT = kernel_data[1]["Area"]["LUT"]
        latency_list.append(Latency)
        Resource["DSP"].append(DSP)
        Resource["FF"].append(FF)
        Resource["LUT"].append(LUT)
    print(Resource)
    fig = plt.figure(tight_layout=True)
    gs = gridspec.GridSpec(2, 3)
    ax = fig.add_subplot(gs[0, :])
    latency_list = [int(m) for m in latency_list]
    yma = int(max(latency_list))
    ymi = int(min(latency_list))
    gap = int((yma - ymi) / 5)
    y_major_locator = mticker.MultipleLocator(gap)
    ax.yaxis.set_major_locator(y_major_locator)
    print("type(axis_x)", type(axis_x[0]))
    ax.set_ylabel("Latency")
    ax.set_xlabel(axis_name)
    ax.plot(axis_x, latency_list)
    for i, k, v in zip(list(range(len(Resource))), Resource.keys(), Resource.values()):
        ax = fig.add_subplot(gs[1, i])
        v = [int(m) for m in v]
        print(type(v[0]))
        ax.set_ylabel(k)
        ax.set_xlabel(axis_name)
        yma = int(max(v))
        ymi = int(min(v))
        gap = int((yma - ymi) / 5)
        y_major_locator = mticker.MultipleLocator(gap)
        ax.yaxis.set_major_locator(y_major_locator)
        ax.plot(axis_x, v)
    fig.align_labels()  # same as fig.align_xlabels(); fig.align_ylabels()
    plt.show()

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python识别验证码的实现示例

    Python识别验证码的实现示例

    这篇文章主要介绍了Python识别验证码的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • python列表生成式与列表生成器的使用

    python列表生成式与列表生成器的使用

    本篇文章主要介绍了python列表生成式与列表生成器的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • django实现将后台model对象转换成json对象并传递给前端jquery

    django实现将后台model对象转换成json对象并传递给前端jquery

    这篇文章主要介绍了django实现将后台model对象转换成json对象并传递给前端jquery,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • TensorFlow Session使用的两种方法小结

    TensorFlow Session使用的两种方法小结

    今天小编就为大家分享一篇TensorFlow Session使用的两种方法小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Python开发工具Pycharm的安装以及使用步骤总结

    Python开发工具Pycharm的安装以及使用步骤总结

    今天给大家带来的是关于Python开发工具的安装以及使用的相关知识,文章围绕着如何使用和安装Pycharm展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • Python类方法__init__和__del__构造、析构过程分析

    Python类方法__init__和__del__构造、析构过程分析

    这篇文章主要介绍了Python类方法__init__和__del__构造、析构过程分析,本文分析了什么时候构造、什么时候析构、成员变量如何处理、Python中的共享成员函数如何访问等问题,需要的朋友可以参考下
    2015-03-03
  • pytorch实现模型剪枝的操作方法

    pytorch实现模型剪枝的操作方法

    PyTorch 提供了内置剪枝 API ,也支持了一些非结构化和结构化剪枝方法,但是 API 比较混乱,对应文档描述也不清晰,所以后面我还会结合微软的开源 nni 工具来实现模型剪枝功能,这篇文章主要介绍了pytorch实现模型剪枝, 需要的朋友可以参考下
    2023-02-02
  • Python基础之time库详解

    Python基础之time库详解

    这篇文章主要介绍了Python基础之time库详解,文中有非常详细的代码示例,对正在学习python基础的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • Pytorch深度学习addmm()和addmm_()函数用法解析

    Pytorch深度学习addmm()和addmm_()函数用法解析

    这篇文章主要为大家介绍了Pytorch中addmm()和addmm_()函数用法解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Python下载网络小说实例代码

    Python下载网络小说实例代码

    这篇文章主要介绍了Python下载网络小说实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02

最新评论