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秒算24點(diǎn)實(shí)現(xiàn)及原理詳解
這篇文章主要介紹了Python秒算24點(diǎn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07python3.5 email實(shí)現(xiàn)發(fā)送郵件功能
這篇文章主要為大家詳細(xì)介紹了python3.5 email實(shí)現(xiàn)發(fā)送郵件功能,包含txt、圖片、HTML、附件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05python和c語(yǔ)言的主要區(qū)別總結(jié)
在本篇文章里小編給各位整理了關(guān)于python和c語(yǔ)言的主要區(qū)別的相關(guān)知識(shí)帖內(nèi)容,有需要的朋友們學(xué)習(xí)閱讀下。2019-07-07python2利用wxpython生成投影界面工具的圖文詳解
這篇文章主要介紹了python2利用wxpython生成投影界面工具的圖文詳解,本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04Python隨機(jī)生成身份證號(hào)碼及校驗(yàn)功能
這篇文章主要介紹了Python隨機(jī)生成身份證號(hào)碼及校驗(yàn)功能,文中給大家提到了校驗(yàn)碼計(jì)算方法,需要的朋友可以參考下2018-12-12