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编程中,循环是一种常见的操作,但是如果处理大规模数据或者需要频繁执行的循环,往往会导致程序运行速度变慢,下面我们就来看看有什么办法可以提升循环速度吧
    2024-03-03
  • 基于Python实现文件大小输出

    基于Python实现文件大小输出

    在数据库中存储时,使用 Bytes 更精确,可扩展性和灵活性都很高。下面通过本文给大家介绍基于Python实现文件大小输出,对python文件输出相关知识感兴趣的朋友一起学习吧
    2016-01-01
  • Python 中 f-Strings 的作用

    Python 中 f-Strings 的作用

    这篇文章主要介绍了Python 中 f-Strings 的作用, f-strings 是用来非常方便的格式化输出的,觉得它的使用方法无外乎就是 print(f'value = { value }',其实,f-strings 远超你的预期,今天来梳理一下它还能做那些很酷的事情
    2021-10-10
  • Django 日志配置按日期滚动的方法

    Django 日志配置按日期滚动的方法

    今天小编就为大家分享一篇Django 日志配置按日期滚动的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python Matplotlib数据可视化模块使用详解

    Python Matplotlib数据可视化模块使用详解

    matplotlib是基建立在python之上,适用于创建静态,动画和交互式可视化,通常与数据分析模块pandas搭配使用,用于数据的分析和展示,适用于主流的操作系统,如Linux、Win、Mac
    2022-11-11
  • Python深入浅出分析元类

    Python深入浅出分析元类

    在Python里一切都是对象(object),基本数据类型,如数字,字符串,函数都是对象。对象可以由类(class)进行创建。那么既然一切都是对象,那么类是对象吗?是的,类也是对象,那么又是谁创造了类呢?答案也很简单,也是类,一个能创作类的类,称之为(type)元类
    2022-07-07
  • python3实现磁盘空间监控

    python3实现磁盘空间监控

    这篇文章主要为大家详细介绍了python3实现磁盘空间监控,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Python sep参数使用方法详解

    Python sep参数使用方法详解

    这篇文章主要介绍了Python sep参数使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Python输入的多种情况超详细解读(单行、多行及数组)

    Python输入的多种情况超详细解读(单行、多行及数组)

    对于 Python 来说有多种方式可以输入数据,下面这篇文章主要给大家介绍了关于Python输入的多种情况超详细解读,分别是单行、多行及数组,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-03-03
  • python怎么删除缓存文件

    python怎么删除缓存文件

    在本篇文章里小编给大家整理的是一篇关于python删除缓存文件方法,需要的朋友们可以学习下。
    2020-07-07

最新评论