超詳細plotly畫折線圖例子----記錄自己背單詞

import plotly.offline as py
from plotly.graph_objs import Scatter, Layout
import plotly.graph_objs as go
import numpy as np

py.offline.init_notebook_mode()
#寫入數據
# -*- coding: utf-8 -*-
# 例如輸入的line是:1 2 3 4
# 對於字符串,先使用split方法按空格進行分割,結果爲:['1', '2', '3', '4']
# 然後map函數將int函數迭代作用到每個元素上,最後用list使其成爲一個整型數組


line = input("順序輸入:00//10//30//60//90:")
zz = list(map(int, line.split()))
print(zz)
with open("00.txt","a") as f:
    f.write("\n"+str(zz[0]))  # 自帶文件關閉功能,不需要再寫f.close()
with open("10.txt","a") as f:
    f.write("\n"+str(zz[1]))  # 自帶文件關閉功能,不需要再寫f.close()
with open("30.txt","a") as f:
    f.write("\n"+str(zz[2]))  # 自帶文件關閉功能,不需要再寫f.close()
with open("60.txt","a") as f:
    f.write("\n"+str(zz[3]))  # 自帶文件關閉功能,不需要再寫f.close()
with open("90.txt","a") as f:
    f.write("\n"+str(zz[4]))  # 自帶文件關閉功能,不需要再寫f.close()
    
    
#讀取數據
y00=np.array([])
with open("00.txt", "r") as f:
    for line in f.readlines():
        line = line.strip('\n')  #去掉列表中每一個元素的換行符
        st=np.array(line)
        y00=np.append(y00,st)
        #         print(line)
    f.close()
y10=np.array([])
with open("10.txt", "r") as f:
    for line in f.readlines():
        line = line.strip('\n')  #去掉列表中每一個元素的換行符
        st=np.array(line)
        y10=np.append(y10,st)
        #         print(line)
    f.close()
y30=np.array([])
with open("30.txt", "r") as f:
    for line in f.readlines():
        line = line.strip('\n')  #去掉列表中每一個元素的換行符
        st=np.array(line)
        y30=np.append(y30,st)
        #         print(line)
    f.close()  
y60=np.array([])
with open("60.txt", "r") as f:
    for line in f.readlines():
        line = line.strip('\n')  #去掉列表中每一個元素的換行符
        st=np.array(line)
        y60=np.append(y60,st)
        #         print(line)
    f.close()  
y90=np.array([])
with open("90.txt", "r") as f:
    for line in f.readlines():
        line = line.strip('\n')  #去掉列表中每一個元素的換行符
        st=np.array(line)
        y90=np.append(y90,st)
        #         print(line)
    f.close()
print(y00)
print(y10)
print(y30)
print(y60)
print(y90)

trace11=go.Scatter(
    name="已加入記憶規劃全部單詞",
#     x=[-1,  0,  1,  2,  3,  4,  5],
#     y=trace11.y,
    x=np.array(range(-1,len(y00))),
    y=np.array(y00),
#     x=np.range()
    
#     x=[-1,0],
#     y=[3300,3371],
    
#     x=range(-1,len(trace11.y))
#     trace11.x=np.array(x)

    text=['記錄起點:2020/5/8'],
    textposition="top center",
    mode="lines+markers+text",
#     marker=dict(
#     size=[2,2,2]
#                 )
)
trace22=go.Scatter(
    name="記憶持久度>10天詞彙量",
    x=np.array(range(-1,len(y10))),
    y=np.array(y10),
#     x=[-1,0],
#     y=[2400,2459],
    text=['梅'],
    textposition="top center",
    mode="lines+markers+text",
#     marker=dict(
#     size=[20,20,20]
)
trace33=go.Scatter(
    name="記憶持久度>30天詞彙量",
    x=np.array(range(-1,len(y30))),
    y=np.array(y30),
#     x=[-1,0],
#     y=[1900,1944],
    text=['蘭'],
    textposition="top center",
    mode="lines+markers+text",
#     marker=dict(
#     size=[20,20,20]
)
trace44=go.Scatter(
    name="記憶持久度>60天詞彙量",
    x=np.array(range(-1,len(y60))),
    y=np.array(y60),
#     x=[-1,0],
#     y=[650,699],
    text=['竹'],
    textposition="top center",
    mode="lines+markers+text",
#     marker=dict(
#     size=[20,20,20]
)
trace55=go.Scatter(
    name="記憶持久度>90天詞彙量",
    x=np.array(range(-1,len(y90))),
    y=np.array(y90),
#     x=[0],
#     y=[0],
    text=['菊'],
    textposition="top center",
    mode="lines+markers+text",
#     marker=dict(
#     size=[20,20,20]
)

axis_x=dict(
    showgrid=True,  #網格
    zeroline=True,  #是否顯示基線,即沿着(0,0)畫出x軸和y軸
    nticks=20,
    showline=True,
    title='時間足跡',
    mirror='all',
    zerolinecolor="#111111"
    #設置刻度的範圍及刻度
#     autorange=False,
#     range=[0, 365],
#     type='linear',
)
axis_y=dict(
    showgrid=True,  #網格
    zeroline=True,  #是否顯示基線,即沿着(0,0)畫出x軸和y軸
    nticks=20,
    showline=True,
    title='單詞數量',
    mirror='all',
    zerolinecolor="#111111"
#設置刻度的範圍及刻度
#     autorange=False,
#     range=[0, 365],
#     type='linear',
)


layout=go.Layout(
# 5.R 190 G 237 B 199
    plot_bgcolor='rgb(190, 237, 199)',
#     plot_bgcolor='#E6E6FA',#圖的背景顏色
    paper_bgcolor='#F8F8FF',#圖像的背景顏色
#     autosize=False,width=1250,height=640,#設置圖像的大小
    autosize=False,width=10000,height=640,#設置圖像的大小
    title = '虛織何成的英語單詞足跡',
    titlefont=dict(family='華文行楷',color='rgb(38, 188, 213)',size=48),
#     title.x=0.5,title.y=1.2,
#     titleposition="top center",
     #設置y軸的刻度和標籤  8.R 230 G 206 B 172
    yaxis=dict(title='單詞數量',#設置座標軸的標籤  
            titlefont=dict(family='華文行楷',color='rgb(25, 203, 173)',size=30),#設置座標軸標籤的字體及顏色
            tickfont=dict(color='rgb(230, 206 ,172)',size = 18,),#設置刻度的字體大小及顏色
#             showticklabels=False,#設置是否顯示刻度
            #設置刻度的範圍及刻度
            autorange=True,
#             fixedrange =True,
#             range=[0, 10000],
#             type='linear'
            ),

    #設置x軸的刻度和標籤    1.R 25 G 202 B 173 
    xaxis=dict(title='時間足跡',#設置座標軸的標籤
            titlefont=dict(family='華文行楷',color='rgb(25, 203, 173)',size=30),
            tickfont=dict(color='rgb(230, 206 ,172)',size =10,),
            tickmode  = "linear",
#             nticks  =100,
#                tick0  =10,
               dtick  =1,
            tickangle=270,#設置刻度旋轉的角度
#             showticklabels=False,#設置是否顯示座標軸
            #設置刻度的範圍及刻度
               
            autorange=False,
            range=[-3, 300],
            fixedrange =True,
            type='linear'
            ),
#     xaxis=axis_x,
#     yaxis=axis_y,
    
#     xaxis = go.layout.XAxis(range = [0,365], domain = [0,1]),
#     yaxis = go.layout.YAxis(range = [0,10000], domain = [0,1]),

    # 設置圖例相對於左下角的位置
    legend=dict(
        x=0,
        y=1.4,
        font=dict(family='sans-serif',size=13,color='black'),#設置圖例的字體及顏色
        bgcolor='#E6E6FA',bordercolor='#FFFFFF'#設置圖例的背景及邊框的顏色
    ),

    showlegend=True,

)
data=[trace11, trace22,trace33, trace44, trace55]
# data=[trace1]
fig=go.Figure(data=data, layout=layout)
py.iplot(fig)

py.plot(fig,filename='C:/Users/文遠/Desktop/word/英語單詞.html',#會生成一個網頁文件
    image='jpeg',)#設置保存的文件類型

# py.offline.plot(fig,filename='E_word.html')# html畫

# import os 
# os.chdir('C:/Users/文遠/Desktop/word')

代碼還是很詳細的對於各種畫圖的設置,但是雖然能在瀏覽器打開,但是好像並不能在其他電腦打開,明天我試一試,
效果如下:在這裏插入圖片描述

感Jio這個好像沒用:file:///C:/Users/%E6%96%87%E8%BF%9C/Desktop/word/E_word.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章