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 web 开发之Flask中间件与请求处理钩子的最佳实践
Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如身份验证、日志记录、数据预处理等功能,本文将详细介绍Flask的请求处理钩子、g对象以及中间件模式的使用方法和最佳实践,感兴趣的朋友一起看看吧2025-05-05
python爬虫 基于requests模块发起ajax的get请求实现解析
这篇文章主要介绍了python爬虫 基于requests模块发起ajax的get请求实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2019-08-08
Python使用matplotlib和pandas实现的画图操作【经典示例】
这篇文章主要介绍了Python使用matplotlib和pandas实现的画图操作,结合实例形式分析了Python基于matplotlib和pandas的数值运算与图形显示操作相关实现技巧,并对部分代码的图形显示进行了显示效果测试,需要的朋友可以参考下2018-06-06
Python pyinstaller打包exe最新完整图文教程
pyinstaller是一个非常简单的打包python的py文件的库,下面这篇文章主要给大家介绍了关于Python pyinstaller打包exe的相关资料,文中介绍的非常详细,需要的朋友可以参考下2023-12-12


最新评论