python matplotlib x軸刻度如何顯示中文

時間 2021-05-04 15:39:21

1樓:大話殘劍

from pylab import *

mpl.rcparams['font.sans-serif'] = ['simhei'] #指定預設字型

mpl.rcparams['axes.unicode_minus'] = false #解決儲存影象是負號'-'顯示為方塊的問題

t = arange(-5*pi, 5*pi, 0.01)y = sin(t)/t

plt.plot(t, y)

plt.title('這裡寫的是中文')

plt.xlabel('x座標')

plt.ylabel('y座標')

plt.show()

matplotlib的預設配置檔案中所使用的字型無法正確顯示中文。為了讓圖表能正確顯示中文,可以有幾種解決方案。

1、在程式中直接指定字型。

2、在程式開頭修改配置字典rcparams。

3、修改配置檔案。

2樓:天煞

plt.xticks(fontproperties="stsong")

加一段**

python繪圖如何顯示中文標題

3樓:黃昏地平線的你

**新增如下就可以了

from pylab import *

# 解決座標軸負刻度亂碼問題

rcparams['axes.unicode_minus'] = false

# 解決中文亂碼問題

rcparams['font.sans-serif'] = ['simhei']

請教如何自定義python的matplotlib中的x軸刻度的問題

4樓:從頭開始自學

初學matplotlib,請大家多多包涵

小弟的目的是,早3點到晚10點之間,每30秒監控一次主機的cpu、記憶體使用率等指標,並繪製成折線圖。

圖的橫座標為時間(時分秒),縱座標為監控指標

以cpu監控為例,目前小弟的做法是,生成兩個list,乙個存datetime.datetime格式的時間(年月日時分秒),另外乙個list存我的監控結果。

然而,作圖的時候,預設的圖形橫座標時間間隔太短,畫出的線太密,效果可如下圖:

matplotlib提供基本的介面:

from matplotlib.dates import autodatelocator, dateformatter  autodates = autodatelocator()  yearsfmt = dateformatter('%y-%m-%d %h:%m:

%s')  figure.autofmt_xdate()        #設定x軸時間外觀  ax.xaxis.

set_major_locator(autodates)       #設定時間間隔  ax.xaxis.set_major_formatter(yearsfmt)      #設定時間顯示格式  ax.

set_xticks() #設定x軸間隔  ax.set_xlim()   #設定x軸範圍

python的 matplotlib畫圖,怎麼把子圖的每個橫座標顯示出來? 5

5樓:匿名使用者

import matplotlib.pyplot as plt

plt.rcparams['font.sans-serif'] = ['simhei'] # 用來正常顯示中文標籤

plt.rcparams['axes.unicode_minus'] = false # 用來正常顯示負號

fig = plt.figure(figsize=(20, 20), dpi=80)

ax1 = fig.add_subplot(2,2,1)

x = range(5)

y = [2, 2, 5, 2, 4]

s = ['數量1', '數量2', '數量3', '數量4', '數量5']

plt.bar(x, y, width=0.5)

plt.xticks(x, s, rotation=270)

plt.xlabel('資料情況' )

plt.ylabel('數量(個)')

for xl, yl in zip(x, y):

plt.text(xl, yl+0.3, str(yl), ha='center', va='bottom', fontsize=10.5)

ax2 = fig.add_subplot(2,2,2)

plt.bar(range(4), [3, 4,2,3], width=0.3)

ax3 = fig.add_subplot(2,2,3)

plt.bar(range(4), [3, 4,2,3], width=0.3)

ax4 = fig.add_subplot(2,2,4)

plt.bar(range(4), [3, 4,2,3], width=0.3)

plt.show()

6樓:匿名使用者

ax = subplots(nrows,ncols,sharex,sharey,squeeze,subplot_kw,gridspec_kw,**fig_kw)  

建立畫布和子圖。

nrowsncols表示將畫布分割成幾行幾列 ,

sharexsharey表是共用xy軸的設定。

squeeze  bool

a.預設引數為true:額外的維度從返回的axes(軸)物件中擠出,對於n*1或1*n個子圖,返回乙個1維陣列,對於n*m,n>1和m>1返回乙個2維陣列。

b.為false,不進行擠壓操作:返回乙個元素為axes例項的2維陣列,即使它最終是1x1。

subplot_kw:字典型別,可選引數。把字典的關鍵字傳遞給add_subplot()來建立每個子圖。

subplot_kw:字典型別,可選引數。把字典的關鍵字傳遞給add_subplot()來建立每個子圖。

gridspec_kw:字典型別,可選引數。把字典的關鍵字傳遞給gridspec建構函式建立子圖放在網格裡(grid)。

**fig_kw:把所有詳細的關鍵字引數傳給figure()函式。

可見你沒有辦法單獨設定某個子圖的ax的。

7樓:匿名使用者

首先你得把**放上來,別人才能回答呀

8樓:匿名使用者

我也表示想知道,你解決了嗎

9樓:匿名使用者

在python中使用matplotlib畫圖,預設橫座標都是由小到大(1,2,3,4,5),但我現在專案特殊需求,想讓橫座標值由大到小逆序顯示(5,4,3,2,1),如何實現呢?

import matplotlib.pyplot as pltplt.figure()

ax1 = plt.subplot(121)ax2 = plt.subplot(122)xlist = [1,2,3,4,5]

ylist = [10,20,30,40,50]plt.sca(ax1)

plt.title("test x label")plt.xlabel("x")

plt.ylabel("y")

plot1, = plt.plot(xlist,ylist,'ro')

plt.show()

python matlibplot 畫圖控制對數座標刻度顯示

10樓:不扶

你試試下面這句指令,主要是subsy控制的,你的那個指令是控制x軸的,並且不太好使。我試了下面這個還挺好使的。

ax.set_yscale('log',nonposy='mask',subsy=[0])

python matplotlib怎麼讓x軸只顯示固定個數的標籤

11樓:ice傻西

plt.xticks(list(x)[::3], _xtick_labels[::3])

3是每隔3個顯示一次,你要顯示6個自行計算

12樓:匿名使用者

#!/usr/bin/env python

#-*- coding: utf-8 -*-

#演示matplotlib中設定座標軸主刻度標籤和次刻度標籤.

#對於次刻度顯示,如果要使用預設設定只要matplotlib.pyplot.minorticks_on()

from pylab import *

from matplotlib.ticker import  multiplelocator

from matplotlib.ticker import  formatstrformatter

#將x主刻度標籤設定為20的倍數(也即以 20為主刻度單位其餘可類推)

xmajorlocator = multiplelocator(20);

#設定x軸標籤文字的格式

xmajorformatter = formatstrformatter('%3.1f')

#將x軸次刻度標籤設定為5的倍數

xminorlocator = multiplelocator(5)

#設定y 軸的主刻度間隔及相應的刻度間隔顯示格式

#將y軸主刻度標籤設定為1.0的倍數

ymajorlocator = multiplelocator(1.0)

#設定y軸標籤文字的格式

ymajorformatter = formatstrformatter('%1.1f')

#將此y軸次刻度標籤設定為0.2的倍數

yminorlocator = multiplelocator(0.2)

t = arange(1.0, 100.0, 1)

s=t*exp(-t*1.3)+2*sqrt(t)

#注意:一般都在ax中設定,不再plot中設定

ax = subplot(111)

plot(t,s,'--r*')

#設定主刻度標籤的位置,標籤文字的格式

ax.xaxis.set_major_locator(xmajorlocator)

ax.xaxis.set_major_formatter(xmajorformatter)

ax.yaxis.set_major_locator(ymajorlocator)

ax.yaxis.set_major_formatter(ymajorformatter)

#顯示次刻度標籤的位置,沒有標籤文字

ax.xaxis.set_minor_locator(xminorlocator)

ax.yaxis.set_minor_locator(yminorlocator)

ax.xaxis.grid(true, which='major') #x座標軸的網格使用主刻度

ax.yaxis.grid(true, which='minor') #y座標軸的網格使用次刻度

show()

13樓:匿名使用者

可以先根據您的螢幕解析度,使用形參dpi向figure()傳遞該解析度

import matplotlib.pyplot as plt#your code

fig = plt.figure(dpi=128,figsize = (10,6))

fig.autofmt_xdate()#繪製傾斜的日期標籤,以免彼此重疊。