python繪圖坐橫坐標(biāo)軸顯示方式
python matplotlib繪圖
使橫坐標(biāo)軸顯示指定內(nèi)容
在python 繪圖的時(shí)候直接plot會(huì)出現(xiàn)橫坐標(biāo)軸顯示為浮點(diǎn)數(shù)得情況。
舉個(gè)栗子:
使用代碼:
import matplotlib.pyplot as plt y = [7.1,7.2,7.3,7.4,7.5] x = list(range(0,5))#自動(dòng)生成0,1,2,3,4這幾個(gè)數(shù),并添加到list中 plt.plot(x,y) plt.show()
得到結(jié)果圖如下:

可以看到途中我標(biāo)出來的坐標(biāo)軸使浮點(diǎn)數(shù)的形式。
解決方法:
只需要在plt.plot后面加上一句plt.xticks(),指明x軸的坐標(biāo)使用那個(gè)列表內(nèi)容作為表示即可。
下面舉個(gè)例子,
例子中就以自然數(shù)0,1,2,3,4作為坐標(biāo),也可以替換成英文單詞等等,替換成中文的話需要其他操作。這里留個(gè)接口,以后寫中文怎么顯示。
接上例子代碼,改后代碼為:
import matplotlib.pyplot as plt y = [7.1,7.2,7.3,7.4,7.5] x = list(range(0,5))#自動(dòng)生成0,1,2,3,4這幾個(gè)數(shù),并添加到list中 plt.plot(x,y) plt.xticks(x)#指明x軸坐標(biāo)使用列表x里的內(nèi)容 plt.show()
改后作圖如下:

python畫圖,坐標(biāo)軸問題

畫坐標(biāo)軸的時(shí)候出現(xiàn)了2個(gè)bug
第一個(gè)是y軸的大值在下面,小值在上面
這個(gè)bug的原因是y是str類型,而不是Int類型
解決辦法是把y軸的每個(gè)值都變成int型
v = [int(m) for m in v]
python的數(shù)據(jù)類型要時(shí)刻注意,float, int, str之間一不小心就轉(zhuǎn)換
第二個(gè)是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()總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python一行代碼識(shí)別車牌號(hào)碼實(shí)現(xiàn)示例詳解
這篇文章主要為大家介紹了Python一行代碼識(shí)別車牌號(hào)碼實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
PyCharm使用Docker鏡像搭建Python開發(fā)環(huán)境
這篇文章主要介紹了PyCharm使用Docker鏡像搭建Python開發(fā)環(huán)境,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
python?web?開發(fā)之Flask中間件與請(qǐng)求處理鉤子的最佳實(shí)踐
Flask作為輕量級(jí)Web框架,提供了靈活的請(qǐng)求處理機(jī)制,中間件和請(qǐng)求鉤子允許開發(fā)者在請(qǐng)求處理的不同階段插入自定義邏輯,實(shí)現(xiàn)諸如身份驗(yàn)證、日志記錄、數(shù)據(jù)預(yù)處理等功能,本文將詳細(xì)介紹Flask的請(qǐng)求處理鉤子、g對(duì)象以及中間件模式的使用方法和最佳實(shí)踐,感興趣的朋友一起看看吧2025-05-05
python爬蟲 基于requests模塊發(fā)起ajax的get請(qǐng)求實(shí)現(xiàn)解析
這篇文章主要介紹了python爬蟲 基于requests模塊發(fā)起ajax的get請(qǐng)求實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
Python使用matplotlib和pandas實(shí)現(xiàn)的畫圖操作【經(jīng)典示例】
這篇文章主要介紹了Python使用matplotlib和pandas實(shí)現(xiàn)的畫圖操作,結(jié)合實(shí)例形式分析了Python基于matplotlib和pandas的數(shù)值運(yùn)算與圖形顯示操作相關(guān)實(shí)現(xiàn)技巧,并對(duì)部分代碼的圖形顯示進(jìn)行了顯示效果測(cè)試,需要的朋友可以參考下2018-06-06
基于Keras的格式化輸出Loss實(shí)現(xiàn)方式
這篇文章主要介紹了基于Keras的格式化輸出Loss實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06
Python?pyinstaller打包exe最新完整圖文教程
pyinstaller是一個(gè)非常簡(jiǎn)單的打包python的py文件的庫,下面這篇文章主要給大家介紹了關(guān)于Python?pyinstaller打包exe的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12

