python 實現雙縱軸(y)軸影象的繪製(中文label),解決只顯示一個折線label的問題
原始資料中,分為第0,1,2,3列,這裡使用第1(橫軸),2列(左縱軸),3列(右縱軸)
2006 | 49.7 | 35.02 | 29.07 |
2007 | 51.25 | 33.68 | 29.62 |
2008 | 54.75 | 37.88 | 31.39 |
2009 | 53.57 | 36.21 | 29.44 |
2010 | 46.08 | 30.77 | 20.9 |
2011 | 48.32 | 31.21 | 23.03 |
2012 | 52.06 | 31.28 | 24.47 |
2013 | 53.86 | 31.38 | 25.57 |
2014 | 57.13 | 30 | 27.08 |
結果:
import matplotlib.pylab as plt # 匯入繪圖包 import matplotlib.pyplot as mp from pylab import * #影象中的title,xlabel,ylabel均使用中文import numpy as np #使用自己下載的宋體庫simsun.ttc,原始matplotlib不支援中文 myfont = matplotlib.font_manager.FontProperties(fname="simsun.ttc") mpl.rcParams['axes.unicode_minus'] = False dates,y1 = np.loadtxt('全國發病資料_可用於分析.csv', delimiter=',', usecols=(0,1), unpack=True) dates,y2 = np.loadtxt('全國發病資料_可用於分析.csv', delimiter=',', usecols=(0,2), unpack=True) mp.gcf().set_facecolor(np.ones(3) * 240/255)#設定背景色 fig, ax1 = plt.subplots() # 使用subplots()建立視窗 ax2 = ax1.twinx() # 建立第二個座標軸 ax1.plot(dates, y1,'o-', c='orangered',label='y1', linewidth = 1) #繪製折線影象1,圓形點,標籤,線寬 ax2.plot(dates, y2, 'o-', c='blue',label='y2', linewidth = 1) #同上 ax1.set_xlabel('時間', fontproperties=myfont,size=18) #與原始matplotlib設定引數略有不同,使用自己下載的中文宋體,引數位置不可改變 ax1.set_ylabel('第1列資料', fontproperties=myfont,size=18) ax2.set_ylabel('第2列資料', fontproperties=myfont,size=18) mp.gcf().autofmt_xdate()#自動適應刻度線密度,包括x軸,y軸 mp.legend()#顯示折線的意義 plt.show()
但是存在問題,只顯示了一個label,怎麼辦?
原因:
應該是legend()預設使用當前介面的label,理論上我們是建立了兩個介面的,也就是兩個圖層,windows系統只標記了上方的圖層的label。
改進與解決
fig, ax1 = plt.subplots() ax1.plot(dates, y1,'o-', c='orangered',label='cancer viliage num', linewidth = 1) mp.legend(loc=2) ax2 = ax1.twinx() ax2.plot(dates, y2, 'o-', c='blue',label='waster water', linewidth = 1)mp.legend(loc=1)
說明:在mp.legend()中添加了引數loc,而對應值1,2,3,4分別對應影象的右上角,左上角,左下角,右下角
所有改進程式碼:
import matplotlib.pylab as plt # 匯入繪圖包 import matplotlib.pyplot as mp from pylab import * #影象中的title,xlabel,ylabel均使用中文 import numpy as np #使用自己下載的宋體庫simsun.ttc,原始matplotlib不支援中文 myfont = matplotlib.font_manager.FontProperties(fname="simsun.ttc") mpl.rcParams['axes.unicode_minus'] = False dates,y1 = np.loadtxt('可用於分析.csv', delimiter=',', usecols=(0,1), unpack=True) _,y2 = np.loadtxt('可用於分析.csv', delimiter=',', usecols=(0,2), unpack=True) mp.gcf().set_facecolor(np.ones(3) * 240/255)#設定背景色 fig, ax1 = plt.subplots() # 使用subplots()建立視窗 ax1.plot(dates, y1,'o-', c='orangered',label='y1', linewidth = 1) #繪製折線影象1,圓形點,標籤,線寬 mp.legend(loc=2) ax2 = ax1.twinx() # 建立第二個座標軸 ax2.plot(dates, y2, 'o-', c='blue',label='y2', linewidth = 1) #同上 mp.legend(loc=1) ax1.set_xlabel('時間', fontproperties=myfont,size=18)ax1.set_ylabel('y1', fontproperties=myfont,size=18) ax2.set_ylabel('y2', fontproperties=myfont,size=18) mp.gcf().autofmt_xdate()#自動適應刻度線密度,包括x軸,y軸 plt.show()
結果:
相關推薦
python 實現雙縱軸(y)軸影象的繪製(中文label),解決只顯示一個折線label的問題
資料:原始資料中,分為第0,1,2,3列,這裡使用第1(橫軸),2列(左縱軸),3列(右縱軸)200649.735.0229.07200751.2533.6829.62200854.7537.8831.39200953.5736.2129.44201046.0830.7720
通過python實現TCP在客戶端和伺服器上的單(多)執行緒的程式設計
1、只支援一個客戶端訪問 伺服器: from socket import * address='127.0.0.1' #監聽哪些網路 127.0.0.1是監聽本機 0.0.0.0是監聽整個網路 port=12345 #監聽自己的哪個埠 buffsize=
Python實現刪除列表中滿足一定條件的元素示例(轉)
http://www.jb51.net/article/115953.htm 本文例項講述了Python實現刪除列表中滿足一定條件的元素。分享給大家供大家參考,具體如下: 從列表中刪除滿足一定條件的元素。 如:刪除一個列表中長度為0的元素,或者刪除列表中同時是2和3的倍數的元素。 做過高階語言程式設計的人想
python 實現自動上傳檔案到百度網盤(附程式原始碼及實現過程)
5、編寫AutoIt指令碼,實現檔案上傳 1.開啟scite script editor 程式碼如下: # coding=utf-8 import time from selenium import webdriver driver = webdriver.Firefox() #開啟火狐瀏覽器 dr
利用Python實現k最近鄰演算法 並識別手寫數字(詳細註釋)
K最近鄰(k-Nearest Neighbor,KNN)分類演算法,是一個理論上比較成熟的方法,也是較為簡單的機器學習演算法之一。該方法的思路是:如果一個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別。K最近鄰
python實現通過微信每天給女友發天氣預報(超簡單程式碼+itchat+入門級爬蟲)
1.前言 剛學爬蟲想寫個最簡單的小程式體會一下爬蟲的效果,原理程式碼非常簡單,僅供大家學習~2.前期準備 (1).itchat itchat是一個非常方便簡單的python的微信介面,可以傻瓜一樣的登陸微信,傳送訊息傳送圖片等,這裡我
python實現二叉樹及其七種遍歷方式(遞迴+非遞迴)
1、二叉樹的遍歷方式? 前序遍歷:根左右 中序遍歷:左根右 後序遍歷:左右根 層次遍歷:從上到下,從左到右 2、python新建一個二叉樹及其七種遍歷(遞迴和非遞迴) class Node(): #節點類 def __init__(self,data =
資料結構之python實現雙端佇列
雙端佇列deque 雙端佇列(deque,全名double-ended queue),是一種具有佇列和棧的性質的資料結構。 雙端佇列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進行。雙端佇列可以在佇列任意一端入隊和出隊。 程式碼實現 """雙端
Python-OpenCV 雜項(一):影象繪製
0x00. 繪製直線 import numpy as np import cv2 img = np.zeros((512,512,3), np.uint8) cv2.line(img,(0,0),(511,511),(255,0,0),5) cv2.imshow('ima
easyui實現tabs選項卡之間的切換(只顯示一個)
一、建立選單項 <div class="easyui-accordion" id="wl_accordion" data-options="fit:true,border:false">
python 實現雙端隊列
eve iter 循環雙端隊列 else ise __init__ app col remove # 隊列兩端都可以進行push和pop操作。 push操作可以用循環雙端隊列的append,appendleft。 # pop操作使用循環雙端隊列的romove c
Python 影象處理 OpenCV (7):影象平滑(濾波)處理
![](https://cdn.geekdigging.com/opencv/opencv_header.png) 前文傳送門: [「Python 影象處理 OpenCV (1):入門」](https://www.geekdigging.com/2020/05/17/5513454552/) [「Pyt
問題:combo只顯示一個選項,其他不顯示(調整框的高度即可。)
== .com idc 普通 內容 重新 運行 padding href 解決辦法:調整框的高度即可。 轉自:http://blog.163.com/strive_only/blog/static/89380168200971010114665/ 雖然我也是用了好一段VC的
CF E. Vasya and a Tree】 dfs+樹狀陣列(給你一棵n個節點的樹,每個點有一個權值,初始全為0,m次操作,每次三個數(v, d, x)表示只考慮以v為根的子樹,將所有與v點距離小於等於d的點權值全部加上x,求所有操作完畢後,所有節點的值)
題意: 給你一棵n個節點的樹,每個點有一個權值,初始全為0,m次操作,每次三個數(v, d, x)表示只考慮以v為根的子樹,將所有與v點距離小於等於d的點權值全部加上x,求所有操作完畢後,所有節點的值 首先要明確兩件事情性質1.每個人的操作只會影響到他的子孫(包括自己) 性質1.每個人的操
jquery正則表示式驗證糾正版(手機號、身份證號、中文名稱)
最新福利:領取阿里雲1000通用代金券 <script type="text/javascript"> // 驗證中文名稱 function isChinaName(name) { var pattern = /^[\u4E00-\u9FA5]{1,6}$/; retu
docker運維(1):安裝centos7.0 docker引擎時,解決lvm包衝突問題
1. 問題 centos7.0安裝docker engine時,系統有以下提示: # yum install docker-engine Running transaction check Running transaction test
機器學習筆記——基於奇異值分解(SVD)的影象壓縮(PIL)
此指令碼的作用是圖片壓縮(清晰度尚可的情況下,可達到8倍以上的壓縮比),是SVD的一個應用實踐,涉及PIL、numpy庫。 (python中處理圖片的庫比較多,比如PIL、OpenCV、matplot
Android studio 多渠道打包,但只生成一個debug包(不需要多渠道debug包)
多渠道打包方式,網上有很多的介紹了,這裡就不再多說了。 配置好打多渠道包,每次手機連線電腦,想執行一下測試。發現在buildout/apk目錄下生成了每個渠道的debug包。而且每執行一次,就成生一個debug包。 這樣是不是很煩。如果只想生成一個debug的包。怎麼做
利用VS建立一個遊戲(3)遊戲地圖繪製(程式碼+註釋)
首先注意的是我們要將地圖素材放置專案資料夾中。#include "stdafx.h" #include "MyGameFrame.h" //源cpp檔案引申出的標頭檔案 也可以用resource.h代替 #include <stdio.h>
UITableView設定單元格選中後只顯示一個打勾的三種簡單方法(僅供參考)
1、第一種方法:先定位到最後一行,若選中最後一行直接退出,否則用遞迴改變上次選中的狀態,重新設定本次選中的狀態。 - (UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIn