如何更改y轴步长?

时间:2019-09-22 11:01:51

标签: python plotly

这是我的代码:

from plotly import graph_objs as go
import numpy as np
import os
from plotly.subplots import make_subplots

fig = make_subplots(rows=2, cols=1)

# Table product views
fig.add_trace(
        go.Table(
            header=dict(values=["Period", "Views"]),
            cells=dict(values=[
                [
                    "01/09/2019 - 07/09/2019",
                    "08/09/2019 - 14/09/2019", 
                    "15/09/2019 - 21/09/2019",
                    "22/09/2019 - 28/09/2019"
                ],
                [15, 25, 35, 32]
            ])
        )
)

# Chart product views
fig.add_trace(

        go.Bar(
            x=[
                "01/09/2019 - 07/09/2019",
                "08/09/2019 - 14/09/2019", 
                "15/09/2019 - 21/09/2019",
                "22/09/2019 - 28/09/2019"
                ],
            y=[15, 25, 35, 32],
        ),
        row=2,
        col=1

)

if not os.path.exists("files"):
    os.mkdir("files")

fig.update_yaxes(title_text="Product views", range=[0, 40], row=2, col=1)
fig.update_layout(height=600, width=600, title_text="<b>Library Shelving</b> statistic")
fig.write_image("files/statistic.pdf")

它呈现一张表格和一张条形图。在条形图的Y轴上,步骤如下: 30,25,20,15,10,5,0。 如何显示其余数字?或至少进行步骤2(而不是5)。例如。 30,28,26,24

当前情节:

enter image description here

2 个答案:

答案 0 :(得分:2)

只需在dtick=2中设置fig.update_yaxes(),如下所示:

代码段1

fig.update_yaxes(title_text="Product views", range=[0, 40], row=2, col=1, dtick=2)

情节1:

enter image description here

这使情节有点怪异,所以我也将您的身高调整为800:

代码段2:

fig.update_layout(height=800, width=600, title_text="<b>Library Shelving</b> statistic")

图2:

enter image description here

答案 1 :(得分:0)

您可以使用E/TestRunner: failed: itStartsLoginActivityAfterDelay(com.example.memento.MainActivityTest) E/TestRunner: ----- begin exception ----- E/TestRunner: androidx.test.espresso.base.DefaultFailureHandler$AssertionFailedWithCauseError: Wanted to match 1 intents. Actually matched 2 intents. IntentMatcher: has component: has component with: class name: is "com.example.memento.LoginActivity" package name: an instance of java.lang.String short class name: an instance of java.lang.String Matched intents: -Intent { cmp=com.example.memento/.LoginActivity } handling packages:[[com.example.memento]]) -Intent { cmp=com.example.memento/.LoginActivity } handling packages:[[com.example.memento]]) Recorded intents: -Intent { flg=0x10000000 cmp=com.example.memento/.MainActivity } handling packages:[[com.example.memento]]) -Intent { cmp=com.example.memento/.LoginActivity } handling packages:[[com.example.memento]]) -Intent { cmp=com.example.memento/.LoginActivity } handling packages:[[com.example.memento]]) at dalvik.system.VMStack.getThreadStackTrace(Native Method) at java.lang.Thread.getStackTrace(Thread.java:1538) at androidx.test.espresso.base.DefaultFailureHandler.getUserFriendlyError(DefaultFailureHandler.java:94) at androidx.test.espresso.base.DefaultFailureHandler.handle(DefaultFailureHandler.java:57) at androidx.test.espresso.ViewInteraction.waitForAndHandleInteractionResults(ViewInteraction.java:318) at androidx.test.espresso.ViewInteraction.check(ViewInteraction.java:300) at androidx.test.espresso.intent.Intents.intended(Intents.java:189) at androidx.test.espresso.intent.Intents.intended(Intents.java:170) at com.example.memento.MainActivityTest.itStartsLoginActivityAfterDelay(MainActivityTest.kt:47) at java.lang.reflect.Method.invoke(Native Method) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at androidx.test.internal.runner.junit4.statement.RunBefores.evaluate(RunBefores.java:80) at androidx.test.rule.ActivityTestRule$ActivityStatement.evaluate(ActivityTestRule.java:531) at org.junit.rules.RunRules.evaluate(RunRules.java:20) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at androidx.test.runner.AndroidJUnit4.run(AndroidJUnit4.java:104) at org.junit.runners.Suite.runChild(Suite.java:128) at org.junit.runners.Suite.runChild(Suite.java:27) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at org.junit.runner.JUnitCore.run(JUnitCore.java:115) at androidx.test.internal.runner.TestExecutor.execute(TestExecutor.java:56) at androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:388) at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2145) Caused by: junit.framework.AssertionFailedError: Wanted to match 1 intents. Actually matched 2 intents. IntentMatcher: has component: has component with: class name: is "com.example.memento.LoginActivity" package name: an instance of java.lang.String short class nam ----- end exception ----- I/TestRunner: finished: itStartsLoginActivityAfterDelay(com.example.memento.MainActivityTest) I/MonitoringInstr: Activities that are still in CREATED to STOPPED: 4 Finishing activity: com.example.memento.LoginActivity@97c0733 I/MonitoringInstr: Finishing activity: com.example.memento.LoginActivity@65a941b I/MonitoringInstr: Finishing activity: com.example.memento.MainActivity@39cc00e androidx.test.espresso.base.DefaultFailureHandler$AssertionFailedWithCauseError: Wanted to match 1 intents. Actually matched 2 intents. IntentMatcher: has component: has component with: class name: is "com.example.memento.LoginActivity" package name: an instance of java.lang.String short class name: an instance of java.lang.String Matched intents: -Intent { cmp=com.example.memento/.LoginActivity } handling packages:[[com.example.memento]]) -Intent { cmp=com.example.memento/.LoginActivity } handling packages:[[com.example.memento]]) Recorded intents: -Intent { flg=0x10000000 cmp=com.example.memento/.MainActivity } handling packages:[[com.example.memento]]) -Intent { cmp=com.example.memento/.LoginActivity } handling packages:[[com.example.memento]]) -Intent { cmp=com.example.memento/.LoginActivity } handling packages:[[com.example.memento]]) at dalvik.system.VMStack.getThreadStackTrace(Native Method) at java.lang.Thread.getStackTrace(Thread.java:1538) at androidx.test.espresso.base.DefaultFailureHandler.getUserFriendlyError(DefaultFailureHandler.java:94) at androidx.test.espresso.base.DefaultFailureHandler.handle(DefaultFailureHandler.java:57) at androidx.test.espresso.ViewInteraction.waitForAndHandleInteractionResults(ViewInteraction.java:318) at androidx.test.espresso.ViewInteraction.check(ViewInteraction.java:300) at androidx.test.espresso.intent.Intents.intended(Intents.java:189) at androidx.test.espresso.intent.Intents.intended(Intents.java:170) at com.example.memento.MainActivityTest.itStartsLoginActivityAfterDelay(MainActivityTest.kt:47) at java.lang.reflect.Method.invoke(Native Method) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at androidx.test.internal.runner.junit4.statement.RunBefores.evaluate(RunBefores.java:80) at androidx.test.rule.ActivityTestRule$ActivityStatement.evaluate(ActivityTestRule.java:531) at org.junit.rules.RunRules.evaluate(RunRules.java:20) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at androidx.test.runner.AndroidJUnit4.run(AndroidJUnit4.java:104) at org.junit.runners.Suite.runChild(Suite.java:128) at org.junit.runners.Suite.runChild(Suite.java:27) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at org.junit.runner.JUnitCore.run(JUnitCore.java:115) at androidx.test.internal.runner.TestExecutor.execute(TestExecutor.java:56) at androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:388) at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2145) Caused by: junit.framework.AssertionFailedError: Wanted to match 1 intents. Actually matched 2 intents. IntentMatcher: has component: has component with: class name: is "com.example.memento.LoginActivity" package name: an instance of java.lang.String short class name: an instance of java.lang.String Matched intents: -Intent { cmp=com.example.memento/.LoginActivity } handling packages:[[com.example.memento]]) -Intent { cmp=com.example.memento/.LoginActivity } handling packages:[[com.example.memento]]) Recorded intents: -Intent { flg=0x10000000 cmp=com.example.memento/.MainActivity } handling packages:[[com.example.memento]]) -Intent { cmp=com.example.memento/.LoginActivity } handling packages:[[com.example.memento]]) -Intent { cmp=com.example.memento/.LoginActivity } handling packages:[[com.example.memento]]) at junit.framework.Assert.fail(Assert.java:50) at androidx.test.espresso.intent.VerificationModes$Times.verify(VerificationModes.java:80) at androidx.test.espresso.intent.Intents.internalIntended(Intents.java:346) at androidx.test.espresso.intent.Intents$2.check(Intents.java:193) at androidx.test.espresso.ViewInteraction$SingleExecutionViewAssertion.check(ViewInteraction.java:419) at androidx.test.espresso.ViewInteraction$2.call(ViewInteraction.java:282) at androidx.test.espresso.ViewInteraction$2.call(ViewInteraction.java:268) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6669) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 参数:https://plot.ly/python/reference/#layout-yaxis-dtick

相关问题